zoukankan      html  css  js  c++  java
  • Share Point 创建 TimerJob

    public class SyncMetadataJob:SPJobDefinition 
        {
            private const string JobName = @"Metadata Sync Job";
            private int counter = 0;
    
            public SyncMetadataJob() : base() { }
    
            public SyncMetadataJob(string jobName, SPService service)
                : base(jobName, service, null, SPJobLockType.ContentDatabase) {
                    this.Title = JobName;
            }
    
            public SyncMetadataJob(string jobName, SPWebApplication webapp) :
                base(jobName, webapp, null, SPJobLockType.ContentDatabase)
            {
                this.Title = JobName;
            }
    
            public override void Execute(Guid targetInstanceId) {
                SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    try
                    {
                        counter = 0;
                        Log("Sync Metadata Job Started.");
                        var lastSyncDate = getLastSyncDate();
                        syncMetaData(lastSyncDate);
                        updateLastSyncDate();
                        Log(string.Format("Sync Metadata {0} terms Updated.", counter));
                        Log("Sync Metadata Job Completed.");
                    }
                    catch (Exception ex)
                    {
                        Log(string.Format("Sync Metadata Job thrown an exception:{0}.", ex.ToString()));
                    }
                    
                });
            }
        }
    }
    public override void FeatureActivated(SPFeatureReceiverProperties properties)
            {
                SPSite site = properties.Feature.Parent as SPSite;
                DeleteSyncMetadataJob(site);
                CreateSyncMetadataJob(site);
            }
    
    
            // Uncomment the method below to handle the event raised before a feature is deactivated.
    
            public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
            {
                SPSite site = properties.Feature.Parent as SPSite;
                DeleteSyncMetadataJob(site);
            }
    
    private void CreateSyncMetadataJob(SPSite site)
            {
                var syncMetadataJob = new SyncMetadataJob(metadataSyncJobName, site.WebApplication);
                var schedule = new SPMinuteSchedule();
                schedule.BeginSecond = 0;
                schedule.EndSecond = 59;
                schedule.Interval = 3; //60 * 24 * 3;    //per 3 days
                syncMetadataJob.Schedule = schedule;
                syncMetadataJob.Update();
            }
    
            private void DeleteSyncMetadataJob(SPSite site)
            {
                foreach (var job in site.WebApplication.JobDefinitions)
                {
                    if (job.Name == metadataSyncJobName)
                        job.Delete();
                }
            }
  • 相关阅读:
    layui formSelects-v4复选框总结等table操作记
    C# 更改 WebBrowser UserAgent
    SQL Server 页撕裂
    c# 实现操作系统 “运行” 功能
    asp.net updatepanel 客户端事件
    javascript des 加密解密
    无日志文件还原数据库(只有mdf无ldf)
    关于 WebForm 在未来微软的替代方案
    C# 从32位程序启动64位程序
    SQL SERVER 数据库修复方法 (数据库变为 "可疑")
  • 原文地址:https://www.cnblogs.com/nanfei/p/3709283.html
Copyright © 2011-2022 走看看