4

如果我将(计时器作业)功能安装到场中的 Sharepoint 前端服务器,哪个服务器执行该作业?他们全部?

作业在作业级别锁定,Execute 方法在场中的一台特定机器上调用 Web 服务,该机器处理所有处理。我的问题是所有前端服务器是否都会尝试运行这项工作?

或者网络人员想在场中提供一个新服务器,这样该作业就不会占用主服务器的资源,但在我看来,我们将重复执行该作业。

使困惑。有人知道这个问题的答案吗?

4

2 回答 2

3

对于 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 及其构造函数和其他成员的主题。)

于 2011-05-26T13:57:48.920 回答
3

计时器作业实际上可以部署到单个实例(如果您愿意,也可以部署到所有实例)。这个链接提供了一个很好的答案:

通过构造函数部署 Timer Job

于 2009-11-23T11:25:07.787 回答