[英]Running delayed_job worker on Heroku?
所以現在我有一個delayed_job的實現,它完全適用於我的本地開發環境。 為了在我的機器上啟動工作人員,我只是運行rake jobs:work
,它完美地工作。
為了讓delayed_job在heroku上工作,我一直在使用幾乎相同的命令: heroku run rake jobs:work
。 這個解決方案可以工作,我不需要為Heroku支付任何工作成本,但是我必須保持命令提示窗口打開,否則我關閉時就會停止delayed_job工作。 是否有命令永久保持這個delayed_job工作程序即使在我關閉命令窗口時也能正常工作? 或者還有另一種更好的方法嗎?
我推薦無用的寶石在heroku上運行延遲的工作。 我現在使用它 - 它對我來說非常有效,零麻煩且零成本。
我還使用了hirefireapp ,它可以對擴展工作者進行更精細的控制。 這需要花費,但成本低於單個heroku工作者(超過一個月)。 我現在不使用它,但已經使用過它,它運行得很好。
加
worker: rake jobs:work
到您的Procfile
。
編輯:
即使你從你的控制台運行它你'買'工人dyno但是Heroku每秒鍾都會被打包。 所以你不付錢,因為你有750小時的免費,而最壞的情況下有一個月有744小時,所以你有額外的dynos,調度任務等6小時免費。
我還沒有嘗試過,但你可能會覺得nohup
很有用。 即使您已關閉終端窗口,它也允許您的進程運行。 鏈接: http : //linux.101hacks.com/unix/nohup-command/
使用heroku控制台讓工作人員進入工作崗位只會為工作創建一個臨時的dyno。 要保持作業在沒有cli的情況下運行,您需要將命令放入Procfile中,如@Lucaksz建議的那樣。
部署之后,你還需要擴展dyno形式,因為heroku需要知道應該將多少dyno放到進程類型上,如下所示: heroku ps:scale worker = 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.