我需要在每个月的第一天安排任务。到目前为止,我一直在使用它:
system.scheduler.schedule(0.microseconds, 30.days, schedulerActor, "update")
但正如你可能已经猜到的那样,这最终有时每月两次(三月)或一个月(二月)都没有执行任务。有没有更好的方法使用Akka Scheduler安排每月第一天的任务?
答案 0 :(得分:3)
内置的Akka调度程序更像是一个延迟器而不是调度程序。我建议使用akka-quartz-scheduler。此模块允许您实际安排任务,以便在需要时运行。
用法很简单。一些配置:
akka {
quartz {
schedules {
YourScheduleName {
description = "A cron job that fires off every first of the month at 5AM"
expression = "0 0 5 1 1/1 ? *"
}
}
}
}
然后在代码中:
case object Tick
val yourActor = system.actorOf(Props[YourActor])
QuartzSchedulerExtension(system).schedule("YourScheduleName", yourActor, Tick)