Sharepoint Timer作业 - 作业执行哪个服务器?

时间:2009-11-23 10:32:15

标签: sharepoint timer-jobs

如果我向服务器场内的Sharepoint前端服务器安装(计时器作业)功能,哪个服务器执行该作业?所有这些?

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

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

混淆。有谁知道这个问题的答案?

2 个答案:

答案 0 :(得分:3)

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

Timer Job deployment via constructors

答案 1 :(得分:3)

对于SharePoint 2010,请参阅How to: Run Code on All Web Servers

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