针对特定Web应用程序的SharePoint计时器作业?

时间:2011-11-02 16:07:48

标签: sharepoint

我正在尝试部署我想针对特定Web应用程序运行的自定义SPJobDefinition。我认为我可以通过使用SPJobDefinition的Web应用程序作用域基础构造函数并传入我想要的Web应用程序来实现此目的。我在Web应用程序功能的FeatureActivated事件接收器中执行此操作:

            TestJob Job = new TestJob("Test", webApp);
            // TODO: change the schedule to run nightly; one time for testing purposes only
            SPOneTimeSchedule schedule = new SPOneTimeSchedule(DateTime.Now);
            TestJob.Schedule = schedule;                
            TestJob.Update();

这是作业本身的构造函数:

    public TestJob(string jobName, SPWebApplication webApplication)
        : base(jobName, webApplication, null, SPJobLockType.Job)
    {
        this.Title = jobName;
    }

似乎无论如何都要针对所有Web应用程序运行。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

那里有小错误:您需要按照自定义ChangeRequestRollup投射定时器作业定义。

对于您的功能接收器,请执行以下操作:

SPJobDefinition changeRequestRollupJob = new ChangeRequestRollup("Devon PMO Change Requests Report", webApp);
// install timer job, on a daily scheduleSPDailySchedule dailySchedule = new SPDailySchedule
{
    BeginHour = 07,
    BeginMinute = 11,
    BeginSecond = 00,
    EndHour = 09,
    EndMinute = 12,
    EndSecond = 00
};

changeRequestRollupJob.Schedule = dailySchedule;
changeRequestRollupJob.Update();

我也不确定你的SPOneTimeSchedule所以我修改了它以使用SPDailySchedule。除此之外它应该像你一样工作得很好。