4

ファーム内の SharePoint フロント エンド サーバーに (タイマー ジョブ) 機能をインストールした場合、どのサーバーがジョブを実行しますか? それらのすべて?

ジョブはジョブ レベルでロックされ、Execute メソッドは、ファーム上の特定の 1 台のマシンで Web サービスを呼び出します。これにより、すべての処理が処理されます。私の質問は、すべてのフロント エンド サーバーがこのジョブを実行しようとするかどうかです。

または、ネットワーク担当者は、このジョブがメイン サーバーのリソースを消費しないように、ファームに新しいサーバーを提供したいと考えていますが、ジョブの実行が重複するように思えます。

混乱している。この質問の答えを知っている人はいますか?

4

2 に答える 2

3

SharePoint 2010 については、「方法:すべての Web サーバーでコードを実行する」を参照してください。

MyTimerJob myTJ = new MyTimerJob(
    "contoso-job-add-mobile-adapter", 
    webApp, 
    null, 
    SPJobLockType.None);

このコードについて、次の点に注意してください。

3 番目のパラメーターを使用して、ジョブを実行する特定のサーバーを指定できます。すべてのフロントエンド Web サーバーでジョブを実行する必要がある場合、これは null です。

4 番目のパラメーターは、すべてのフロントエンド Web サーバーでジョブを実行するかどうかを決定します。SPJobLockType.None を渡すと、Microsoft SharePoint Foundation Web アプリケーション サービスが実行されているすべてのサーバーで確実に実行されます。対照的に、SPJobLockType.Jobを渡すと、Microsoft SharePoint Foundation Web アプリケーション サービスが実行されている最初の使用可能なサーバーでのみ実行されるようになります。(3 番目の可能な値があります。詳細については、SPJobDefinition と、そのコンストラクターおよびその他のメンバーに関するトピックを参照してください。)

于 2011-05-26T13:57:48.920 に答える
3

タイマー ジョブは、実際には 1 つのインスタンス (または必要に応じてすべてのインスタンス) にデプロイできます。このリンクは良い答えを提供します:

コンストラクターによるタイマー ジョブの展開

于 2009-11-23T11:25:07.787 に答える