【发布时间】:2014-03-05 12:26:41
【问题描述】:
我拥有一个 Play 2.2.2 应用程序。
实际部署在Heroku上,我有这样的配置:
$heroku ps
=== web (1X): `target/universal/stage/bin/myWebApp -Dconfig.resource=prod.conf -Dhttp.port=${PORT}`
web.1: up 2014/03/05 03:53:05 (~ 9h ago)
web.2: up 2014/03/05 04:10:03 (~ 9h ago)
所以我拥有 2 个网络测功机,每个都运行我的 Play 应用程序实例。
现在我想在Global.scala 中仅在一个测功机上启动一个特定的 Akka 调度程序。
只有一个,因为它将专注于轮询数据库中的EventStore,其升序非常重要。
似乎可以使用命令选项-Dapplication.global=Global2.scala 使用特定的Global.scala 来指定特定的实例。
这会很棒,因为我可以创建一个 Global2.scala 运行调度程序,同时让 Global.scala 保持不变并由所有其他测功机使用。
ProcFile 应该如何指定 dyno 添加调度程序?
目前我有这个:
web: target/universal/stage/bin/myWebApp -Dconfig.resource=prod.conf -Dhttp.port=${PORT}
我遇到了这个post,但答案中给出的程序对我来说不是很清楚..
应该是:
web: target/universal/stage/bin/myWebApp -Dconfig.resource=prod.conf -Dhttp.port=${PORT}
singleton: `target/universal/stage/bin/myWebApp -Dconfig.resource=prod.conf -Dhttp.port=${PORT} -Dapplication.global=Global2.scala`
制作:
heroku ps:scale singleton=1
缺点是我会失去处理用户 HTTP 请求的 dyno 之一。
事实上,documentation 声明:
Web 进程类型是特殊的,因为它是唯一的进程类型 将从 Heroku 的路由器接收 HTTP 流量。其他工艺类型 可以任意命名。
谁能给我一个提示?
【问题讨论】:
标签: heroku playframework-2.0 playframework-2.2