我在 Play Framework 中使用 Akka 而不是 Job,来安排代码每 X 秒运行一次。我有一种集群(在 Heroku 上运行,目前在 1 dyno 上,但偶尔可能会有一些并发实例)。
有没有一种简单的方法可以让“作业”在整个集群中每 N 秒全局运行一次?我知道 Quartz 支持进程外存储/同步机制,例如数据库 - 我可以在 Scala 中使用类似的东西吗?
这是在播放开始时运行的演员设置:
object Global extends GlobalSettings {
override def onStart(app: Application) {
val monitorActor = Akka.system.actorOf(Props[MonitorLoadJob], name = "monitorLoad")
Akka.system.scheduler.schedule(0 seconds, 10 seconds, monitorActor, Tick)
}
}