簡體   English   中英

在Heroku上運行delayed_job工作者?

[英]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

更多細節可以在這里閱讀https://devcenter.heroku.com/articles/scaling

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM