如果我将(计时器作业)功能安装到场中的 Sharepoint 前端服务器,哪个服务器执行该作业?他们全部?
作业在作业级别锁定,Execute 方法在场中的一台特定机器上调用 Web 服务,该机器处理所有处理。我的问题是所有前端服务器是否都会尝试运行这项工作?
或者网络人员想在场中提供一个新服务器,这样该作业就不会占用主服务器的资源,但在我看来,我们将重复执行该作业。
使困惑。有人知道这个问题的答案吗?
如果我将(计时器作业)功能安装到场中的 Sharepoint 前端服务器,哪个服务器执行该作业?他们全部?
作业在作业级别锁定,Execute 方法在场中的一台特定机器上调用 Web 服务,该机器处理所有处理。我的问题是所有前端服务器是否都会尝试运行这项工作?
或者网络人员想在场中提供一个新服务器,这样该作业就不会占用主服务器的资源,但在我看来,我们将重复执行该作业。
使困惑。有人知道这个问题的答案吗?
对于 SharePoint 2010,请参阅如何:在所有 Web 服务器上运行代码:
MyTimerJob myTJ = new MyTimerJob(
"contoso-job-add-mobile-adapter",
webApp,
null,
SPJobLockType.None);
请注意有关此代码的以下内容:
第三个参数可用于指定作业应在其上运行的特定服务器。当作业应在所有前端 Web 服务器上运行时,此值为 null。
第四个参数确定作业是否在所有前端 Web 服务器上执行。传递SPJobLockType.None 可确保它在运行Microsoft SharePoint Foundation Web 应用程序服务的所有服务器上运行。相比之下,传递SPJobLockType.Job 可确保它仅在运行Microsoft SharePoint Foundation Web 应用程序服务的第一个可用服务器上运行。(还有第三个可能的值。有关更多信息,请参阅 SPJobDefinition 及其构造函数和其他成员的主题。)
计时器作业实际上可以部署到单个实例(如果您愿意,也可以部署到所有实例)。这个链接提供了一个很好的答案: