2012-04-20 11 views

答えて

6

ちょうど今と次の6PMの差を計算し、それを最初の遅延として入れてから、24時間ごとに繰り返すのですか?

+0

最もエレガントな方法ではありませんが、うまくいくはずです。 – Peanut

4

午前6時にジョブを開始し、24時間間隔で単純に繰り返すと、サーバーがタイムゾーンの監視で動作する場合は機能しません。 - 半年は午前5時または午前7時にジョブが起動します。最初にスケジュールされたときにオンにします。

OPは、(DSTを観察しません)インドに住んでいるようだしかしソリューションは完全に移植するために(そして、彼はに言及するので)、クォーツとcronのトリガーを使用すると、より安全なようだ:

また
Trigger trigger = newTrigger() 
    .withIdentity("trigger3", "group1") 
    .startNow() 
    .withSchedule(dailyAtHourAndMinute(6, 0)) 
    .build(); 

クォーツはもっと強力です。唯一の問題は、ターゲットアクターを取得することです。おそらくActorRefをスケジューラーのコンテキストに置き、ジョブ内で取り出すのが最も簡単です。

関連する問題