我创建了一个 Akka 的调度程序,以在固定时间每天发送邮件(例如每天早上 6:00)。那么如何称呼演员呢?我的意思是我应该使用什么逻辑?谢谢你。
问问题
3115 次
2 回答
8
只需计算现在和下一个下午 6 点之间的差异,将其作为初始延迟,然后每 24 小时重复一次?
于 2012-04-20T08:33:02.247 回答
4
如果服务器在观察dst的时区工作,则在早上 6 点开始作业并简单地以 24 小时间隔重复将不起作用- 在一年中的一半时间里,作业将在早上 5 点或早上 7 点触发,具体取决于它是什么时候最初安排的。
OP 似乎生活在印度(不遵守 DST),但是为了使解决方案完全可移植(并且因为他提到了quartz-scheduler),使用 Quartz 和 CRON 触发器似乎更安全:
Trigger trigger = newTrigger()
.withIdentity("trigger3", "group1")
.startNow()
.withSchedule(dailyAtHourAndMinute(6, 0))
.build();
Quartz也更强大。唯一的问题是获取目标参与者。可能放置ActorRef
在调度程序上下文中并在作业中检索它是最简单的方法。
于 2012-04-20T16:55:00.850 回答