2

我创建了一个 Akka 的调度程序,以在固定时间每天发送邮件(例如每天早上 6:00)。那么如何称呼演员呢?我的意思是我应该使用什么逻辑?谢谢你。

4

2 回答 2

8

只需计算现在和下一个下午 6 点之间的差异,将其作为初始延迟,然后每 24 小时重复一次?

于 2012-04-20T08:33:02.247 回答
4

的时区工作,则在早上 6 点开始作业并简单地以 24 小时间隔重复将不起作用- 在一年中的一半时间里,作业将在早上 5 点或早上 7 点触发,具体取决于它是什么时候最初安排的。

OP 似乎生活在印度(不遵守 DST),但是为了使解决方案完全可移植(并且因为他提到了),使用 Quartz 和 CRON 触发器似乎更安全:

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

Quartz也更强大。唯一的问题是获取目标参与者。可能放置ActorRef在调度程序上下文中并在作业中检索它是最简单的方法。

于 2012-04-20T16:55:00.850 回答