我擁有一個Play 2.2.2應用程序。Play 2.2.2 /只在一臺Heroku的測功機上運行一個調度程序:
實際部署在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個DYNOS,每個運行我的播放應用程序的實例。
現在我想在Global.scala
的一臺測功機上啓動一個特定的Akka調度器。 只有一個,因爲它將專注於在數據庫中輪詢EventStore
,其升序非常重要。
似乎可以使用命令選項-Dapplication.global=Global2.scala
使用特定的Global.scala
指定特定實例。
這會很好,因爲我可以創建一個運行調度程序的Global2.scala
,同時讓Global.scala
不變,並由所有其他dynos使用。
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請求的測試儀之一。
事實上,documentation狀態:
幅材工序類型是特殊的,因爲它是唯一的過程類型 將收到來自Heroku的路由器的HTTP流量。其他工藝類型 可以任意命名。
誰能給我一個提示?
但是,如果「web.1」是而且我需要一個新的測試儀來承載這個過程,這種硬編碼的方式不適合,不是嗎? – Mik378