sharepoint中添加计时器作业时用到的俩个方法

来源:互联网 发布:论坛制作软件 编辑:程序博客网 时间:2024/06/06 15:34

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Administration;

namespace TimeJobV1
{

//安装timer
    class TimeJobInstaller : SPFeatureReceiver   //定义功能接收器
    {
        const string txtTimeJobTest = "TimeJobTest"; //定义查找计时器作业标题常量
        
        //定义功能接收器操作方法
        public override void FeatureInstalled(SPFeatureReceiverProperties properties)
        { }
        public override void FeatureUninstalling(SPFeatureReceiverProperties properties)
        { }

        public override void FeatureActivated(SPFeatureReceiverProperties properties)
        {
            SPSite site = properties.Feature.Parent as SPSite; //获取网站集对象

            //遍历该网站集所有计时器作业,查找正要添加的计时器作业是否存在,如果存在,将其删除
            foreach (SPJobDefinition job in site.WebApplication.JobDefinitions) 
            {
                if (job.Name == txtTimeJobTest)
                {
                    job.Delete();
                }
 
            }

            //添加计时器作业
            TimeJobTest Timer = new TimeJobTest(txtTimeJobTest, site.WebApplication);

            //设置定时器的执行计划部分
            SPMinuteSchedule schedule = new SPMinuteSchedule();
            schedule.BeginSecond = 0;
            schedule.EndSecond = 59;
            schedule.Interval = 2;
            Timer.Schedule=schedule;
            Timer.Update();
        }

         public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
        {
            SPSite site = properties.Feature.Parent as SPSite;
            foreach (SPJobDefinition job in site.WebApplication.JobDefinitions)
            {
                if (job.Name == txtTimeJobTest)
                {
                    job.Delete();
                }
            }
        }
           

 
        }

    }

 

//执行timer

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Administration;
using Microsoft.SharePoint.Utilities;

namespace TimeJobV1
{
    public class TimeJobTest:SPJobDefinition
    {
        public TimeJobTest():base(){}
        public TimeJobTest(string _TimeName,SPWebApplication _wp):base(_TimeName,_wp,null,SPJobLockType.ContentDatabase)
        {
            this.Title = "TimeJobTest";
        }

        public override void Execute(Guid targetInstanceId)
        {
            //调用添加用户与组到主站的list中   执行添加类实力
            TimeUserGroup timeUserGroup = new TimeUserGroup();
            timeUserGroup.AddUserGroup();

 

}}}