我在Heroku上运行着一个Play 2.x应用,只有一个web dyno。
启动时,会触发一个Akka actor,它本身会安排未来的任务(例如发送推送通知)。
启动时,会触发一个Akka actor,它本身会安排未来的任务(例如发送推送通知)。
object Global extends GlobalSettings {
override def onStart(app:Application) {
val actor = Akka.system.actorOf(Props[SomeActor])
Akka.system.scheduler.scheduleOnce(0 seconds, actor, None)
}
}
这个方案对于一个web dyno来说运行良好,但是如果我增加了web dynos的数量,我很好奇会发生什么。
如果使用Global,它能否真正全局工作,并且onStart只被执行一次,无论有多少个web dynos,这将会很棒。如果不行,多个dynos必须就哪一个dyno负责完成任务达成共识。
有人遇到过类似的问题吗?