工作项计时器作业未触发



在我的网站 (SP2010) 中,我创建了一个触发器,该触发器通过 SPSite.AddWorkItem 方法将工作项添加到队列中。这似乎做得很好,因为"计划工作项"表正在填充正确的数据。时间以 UTC 格式设置,是当前或过去的时间。ID 也都设置正常。因此,该表具有所有正确的数据。

但是,从 SPWorkItemJobDefinition 派生的具有正确 ID 的自定义创建的工作项处理器永远不会被触发。添加工作项的 AppPool 用户也是场管理员。事件日志或 SharePoint 日志文件中没有有关此过程的条目,因此甚至不会触发它。

成功部署和触发工作项作业的更多先决条件是什么?

需要为工作项作业定义创建正在运行的作业实例。工作项作业计划为任何其他作业。请参阅 SPWorkItemJobDefinition 类:

用作派生工作项计时器作业定义的基类。此类与计时器作业 (SPTimerService) 一起使用来处理工作项(SPWorkItem 实例)。 [...] 此类与 SPWorkItem 和 SPWorkItemCollection 类密切合作。应使用 SPSite 对象有权访问的集合类将工作项添加到处理队列。当工作项计时器作业执行时,[...]

我建议创建一个功能事件接收器并在功能激活的"事件"中创建作业实例:

SPWebApplication webApp = // ..;
SomeWorkItemJob = new SomeWorkItemJob("TheName", webApp);
job.Schedule = new SPMinuteSchedule { Interval = 2}; // every two minutes
job.Update(false);

相关内容

  • 没有找到相关文章

最新更新