2009-09-19 14 views
6

現在、Quartz.netをシンプルなアプリケーションで実装しています。このアプリケーションでは、コードを(たとえば)5秒ごとに実行する必要があります。今はコードが完了するまでに5秒以上かかることがあります。ジョブが完了したあとのQuartz.netリピートジョブ

最初は同じコードが実行されている間にコードが実行されたという問題がありましたが、IJobインターフェイスの代わりにIStateFulJobインターフェイスを使用してこれを修正しました。

私が本当にしたいのは、私の仕事は、仕事が完了した後5秒後に実行され、前の仕事が開始されてから5秒後ではないということです。

リスナーがジョブの準備ができていることを聞いたときにトリガされるイベントを処理してジョブを再スケジュールできますが、標準機能がないかどうかは疑問でした。

+1

'IStatefulJob'は推奨されていません。 'DisallowConcurrentExecution'属性を使用すると、複数のジョブインスタンスを同時に実行できなくなります。 –

答えて

4

現在のところ、Quartz.NETは、あらかじめ定義された(事前に計算された)発火時間と、作業をトリガするための適切な時間のポーリングを持つという考え方に基づいているため、これを達成する標準的な方法はありません。

説明した方法が最も簡単な方法です。ジョブから次の実行をスケジュールするか、リスナーからスケジュールを設定します。

+5

これまでと変わったことはありますか?これは4年前の答えでした。それは今日もまだ同じですか? –

関連する問題