我在Scala上使用Akka Stream。 我想设置一个每24:00运行一次的调度程序。我试图搜索它。但我无法找到我想做的事情。你能告诉我如何编写代码吗?
答案 0 :(得分:4)
使用Akka调度程序中的build,请参阅: http://doc.akka.io/docs/akka/current/scala/scheduler.html
您可以使用以下调度程序:
system.scheduler.schedule(
initialDelay = FiniteDuration(/*offset to next 24:00*/),
interval = FiniteDuration(24, TimeUnit.HOURS),
receiver = self,
message = ScheduleAkkaStream
)
然后在actor中,当收到ScheduleAkkaStream时,运行作业
答案 1 :(得分:2)
这是在评论中提到的,但实际上应该是仅使用akka流的首选解决方案:
Source.tick(0.seconds, 24.hours, Done).runForeach { x =>
//do something
}
答案 2 :(得分:0)
最常用的是akka石英调度程序: https://github.com/enragedginger/akka-quartz-scheduler
这是我写的,并没有额外的依赖性,比使用更少的铃铛和口哨的石英更轻量级: https://github.com/johanandren/akron
答案 3 :(得分:0)
我用过:
system.scheduler.scheduleWithFixedDelay(10.seconds, 30.seconds)(
() => {
println("Action")
}
)