1

私のサイト(SP2010)では、SPSite.AddWorkItemメソッドを使用して、作業項目をキューに追加するトリガーを作成しました。ScheduledWorkItemsテーブルに正しいデータが入力されているため、これはうまくいくようです。時刻はUTCで設定され、現在または過去の時刻です。IDもすべてOKに設定されています。したがって、テーブルにはすべての適切なデータがあります。

ただし、SPWorkItemJobDefinitionから派生した、正しいIDを持つカスタム作成された作業項目プロセッサが起動されることはありません。作業項目を追加するAppPoolユーザーは、ファーム管理者でもあります。このプロセスに関するイベントログまたはSharePointログファイルにはエントリがないため、トリガーされていません。

作業項目ジョブを正常にデプロイして実行するための前提条件は他にありますか?

4

1 に答える 1

1

作業項目ジョブ定義の実行中のジョブインスタンスを作成する必要があります。作業項目ジョブは、他のジョブと同様にスケジュールされます。SPWorkItemJobDefinitionクラスを参照してください。

作業項目タイマージョブの定義を導出するための基本クラスとして機能します。このクラスは、タイマージョブ(SPTimerService)と連携して、作業項目(SPWorkItemインスタンス)を処理します。[...]このクラスは、SPWorkItemクラスおよびSPWorkItemCollectionクラスと緊密に連携します。SPSiteオブジェクトがアクセスできるコレクションクラスを使用して、作業項目を処理キューに追加する必要があります。作業項目タイマージョブが実行されると、[...]

機能イベントレシーバーを作成し、機能がアクティブ化された「イベント」でジョブインスタンスを作成することをお勧めします。

SPWebApplication webApp = // ..;
SomeWorkItemJob = new SomeWorkItemJob("TheName", webApp);
job.Schedule = new SPMinuteSchedule { Interval = 2}; // every two minutes
job.Update(false);
于 2012-04-18T14:44:10.243 に答える