2013-08-03 117 views
0

我開發了一個延遲作業和cron作業的應用程序,我需要將它部署到Heroku。我意識到我的延遲工作需要Heroku增加,「Heroku日程安排標準」,它的成本34.50美元。 1)這是否意味着我需要購買,以便我的延遲工作和cron工作將自動運行?我想知道是否可以通過使用Heroku schedular來完成延遲工作和cron工作,那麼爲什麼我們仍然需要javan/whatever和collectiveidea/delayed_job?我可以在Heroku中使用這些優先處於自由狀態嗎?在Heroku中實現延遲作業和定時作業

2)我的cron作業在Heroku中不起作用。我如何在heroku中運行我的寶石?

回答

3

在你的問題中似乎混淆了幾個想法。我會盡我所能將它們分開:

一)DelayedJob在Heroku

一種方式來處理作業中DelayedJob排隊(即記錄坐在delayed_jobs表中您的數據庫)是運行以下耙子任務:

$ rake jobs:work 

在heroku上,這個耙子任務通常通過'worker'進程運行。

默認情況下,對於rails應用程序,您的heroku應用程序應該已經爲'workers'(最初設置爲0)提供了一個滑塊,該滑塊將運行上面的rake任務。僅僅將它拖到'1'(這將花費您每月大約34.00美元)將在專用的heroku實例的後臺啓動DelayedJob出列進程,並使用您的代碼庫獨立於您的Web dynos。

請注意,DelayedJob不需要Heroku的「調度程序」附加組件。 另請注意,heroku按月處理數小時。所以,如果你每月將你的'工作人員'拖到'1'一個小時,然後當你完成時再次將它滑回'0',你將會付出很多,遠遠低於34美元的收費。還有一種方法可以通過編程方式來滑動工作人員。

B)克朗在Heroku

既然這樣,管理自己的自定義的cron 文件是不可能在Heroku或其他基於雲的應用服務提供商。一切都是短暫的,部署的文件不能被你或你的代碼改變。

Heroku的調度程序是在這種情況下適當的插件來替換cron。您應該可以在您的heroku調度程序中設置任務,以執行您的cron任務正在執行的任務。

最後我檢查了一下,heroku的調度程序是免費的(請參閱:https://addons.heroku.com/scheduler),所以我不確定爲什麼說它是34.50美元。

希望這會有所幫助。

+0

謝謝。我想我對你的解釋更瞭解。 –