2

決まった時間(例:毎日午前6時)までに毎日メールを送信するAkkaのスケジューラーを作成しました。では、俳優をどのように呼ぶのですか?ロジックは何を使うべきですか?ありがとうございました。

4

2 に答える 2

8

現在と次の午後 6 時との差を計算し、それを最初の遅延として、24 時間ごとに繰り返すだけですか?

于 2012-04-20T08:33:02.247 に答える
4

を監視するタイム ゾーンで動作している場合、午前 6 時にジョブを開始し、単純に 24 時間間隔で繰り返すことはできません。1年の半分の間、ジョブは、いつだったかに応じて、午前 5 時または午前 7 時に開始されます。当初予定。

OPはインドに住んでいるようです(DSTを観察していません)が、ソリューションを完全に移植可能にするために(そして彼がQuartz に言及しているため)、QuartzとCRONトリガーを使用する方が安全に思えます:

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

また、Quartzはより強力です。唯一の問題は、ターゲット アクターを取得することです。おそらくActorRef、スケジューラのコンテキストに配置してジョブで取得するのが最も簡単な方法です。

于 2012-04-20T16:55:00.850 に答える