2012-04-18 7 views
1

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

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

作業項目ジョブを正常に展開して起動するための前提条件はありますか?

+0

されています作業項目のジョブはスケジュールされていますか? – Stefan

+0

Central Adminに表示する必要がありますか?私はスケジュールされた仕事の下を見て、それは空です。 Timer Job Definitionsの下では、どちらも言及されていません。 –

+0

待機中の、スケジュールされたジョブは空ではありませんが、この定義はリストされていません。 –

答えて

1

作業項目ジョブ定義の実行中のジョブ・インスタンスを作成する必要があります。作業項目ジョブは他のジョブと同様にスケジュールされます。 SPWorkItemJobDefinition Class

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

私はフィーチャーイベントレシーバーを作成して、「イベント」活性化機能でジョブ・インスタンスを作成することをお勧め:

SPWebApplication webApp = // ..; 
SomeWorkItemJob = new SomeWorkItemJob("TheName", webApp); 
job.Schedule = new SPMinuteSchedule { Interval = 2}; // every two minutes 
job.Update(false); 
関連する問題