SharePoint 计时器作业正在运行,但未执行



此功能的范围限定在网站集级别。 激活该功能后,将在 Web 应用程序中使用通用名称创建计时器作业,该通用名称包含它应该在其中运行的网站集 URL。 理论上,在网站集中停用该功能时,它将停止执行,但在其他网站集上激活的任何其他计时器作业功能仍将运行。

using Microsoft.SharePoint
using Microsoft.SharePoint.Administration
class DailyAlerts() : SPJobDefinition
{
   public DailyAlerts() : base() { }
   public DailyAlerts(string jobName, SPWebApplication webApp) : base(jobName, webApp, null, SPJobLockType.Job)
   {
      this.Title = jobName;
   }
   public override void Execute(Guid targetInstanceId)
   {
      // CHANGE THE SITE COLLECTION'S ROOT WEB SITE DESCRIPTION TO THE CURRENT TIME
   }
}

部署解决方案并在一个网站集上激活它后,作业从未执行任何自定义代码。 本文有助于纠正以下问题:http://www.wahidsaleemi.com/2009/08/sharepoint-timer-jobs-not-running/。 停止 SP 计时器服务器、删除缓存的 XML 文件并启动服务后,激活的网站集计时器作业将完美执行。

但是,在其他网站集

上激活自定义计时器功能会导致该特定网站集的计时器作业未执行的相同初始问题。 第一个计时器作业(清除缓存后)仍然工作正常。

由于某些用户可以控制可以打开/关闭功能,因此您可以看到这会如何让人们感到沮丧。 创建新网站集时,必须激活该功能,但它不会运行,直到...缓存被清除了吗? 我在这里错过了什么?

提前谢谢。

该服务可以使用Powershell重置,我的建议是对该功能进行描述,只是为了说明功能的全部功能要到第二天才会变得明显。

获取功能以在服务器场或 Web 应用级别更新属性包变量。

编写一个 powershell 脚本以然后扫描变量,如果变量等于 true,则运行脚本并通知某人重新启动。显然,将变量重置回原来的样子。将此脚本绑定到其中一个 SP 服务器的任务调度程序,以便在夜间运行一次,远离任何备份和搜索作业。这意味着如果您需要手动启动它,您也可以通过任务计划程序执行此操作!

这将意味着该过程是自动化的,但您只在需要时强制计时器作业重新启动。

干杯特鲁兹

最新更新