11

春のアプリケーションにクォーツジョブを統合しようとしています。この例はここから取得しました。この例は、を使用して繰り返し間隔で実行され、を使用simpletriggerして特定の時間に実行されるジョブを示していcrontriggerます。

私の要件は、アプリケーションの起動時に1回だけジョブを実行することです。プロパティを削除しましたrepeatIntervalが、アプリケーションが例外をスローします:

org.quartz.SchedulerException: Repeat Interval cannot be zero

一度だけ仕事をスケジュールする方法はありますか?

ありがとう..

4

2 に答える 2

7

ここで答えを見つけました

repeatIntervalと設定を無視すると、repeatCount = 0私が望んでいたことができます。

于 2012-12-27T11:52:23.207 に答える
1

Spring SimpleTriggerFactoryBeanがその役割を果たします。開始時刻を指定しない場合は、「now」に設定されます。

ただし、長時間実行される1回限りのジョブは、2ノードのクラスターでも機能しないため、アンチパターンと見なす必要があると思います。ジョブを実行するノードがダウンした場合、再起動する人は誰もいません。仕事。

私は、たとえば1時間ごとに繰り返されるジョブが好きですが、 @DisallowConcurrentExecutionで注釈が付けられています。このようにして、ジョブを最初にホストしていたノードが稼働しているときと停止した後の両方で、正確に1つのジョブが実行されることを保証します。

于 2015-04-16T11:26:59.300 に答える