And*_*eas 3 heroku playframework-2.0
我有一个Play 2.x应用程序在Heroku上运行并使用单个web dyno.
在启动时,触发一个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)
}
}
Run Code Online (Sandbox Code Playgroud)
这适用于一个网络dyno,但我很想知道如果我调高网络动态数量会发生什么.onStart会用两个web dynos执行两次吗?
如果Global真正在全球范围内运作并且onStart只执行一次,与web dynos的数量无关,那将会很棒.如果没有,多个dynos必须以某种方式同意一个负责这项工作的dyno.
有没有人遇到过类似的问题?
如果你运行两个web dynos,你的全局将被执行两次.全球是这个过程的全球性.扩展Web进程时,您正在运行两个进程.你有几个选择:
GlobalSettings实现.启动流程时,指定要使用的全局-Dapplication.global=YourSecondGlobal.在你的proc文件中,你会有singleton: target/start -Dhttp.port=${PORT} ${JAVA_OPTS} -Dapplication.global=YourSecondGlobal.启动您的Web流程和singleton流程,确保singleton缩放为1.| 归档时间: |
|
| 查看次数: |
619 次 |
| 最近记录: |