我有一个 Play 2.x 应用程序,并在 Heroku 上运行,只有一个网络测功机。
在启动时,会触发一个 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)
}
}
这适用于一个网络测功机,但我很想知道如果我增加网络测功机的数量会发生什么。onStart 会用两个网络测功机执行两次吗?
如果Global真的在全球范围内工作并且onStart只执行一次,与网络测功机的数量无关,那就太好了。如果没有,多个测功机必须以某种方式就一个负责完成这项工作的测功机达成一致。
有没有人遇到过类似的问题?