2011-11-12 50 views
1

我有一個在Heroku上運行延遲工作的應用程序。然而此刻,我要開始與終端命令運行作業隊列:你如何總是延遲在heroku上運行的作業?

heroku rake jobs:work 

...但是這意味着,當我關閉我的終端應用程序的延遲作業隊列也將關閉。

有沒有辦法讓Heroku在應用程序啓動時始終在後臺啓動並運行延遲的作業?不必每次都運行該命令,而不必將其直接鏈接到我的終端外殼?

非常感謝。

編輯:

這是在竹堆上。加大工作量或運行耙工作:工作,延遲工作運行一段時間,但隊列似乎停止處理。在延遲工作隊列中沒有錯誤,工作人員只是停止處理作業。它必須每5或10分鐘明確重啓一次。

回答

1

事實證明,我使用了錯誤的rake gem。

以下是在Heroku上造成的問題與軌道3:

gem 'rake', '0.9.2' 

更新寶石固定的問題,即使沒有在日誌中的錯誤:

gem "rake", "0.8.7" 
4

From the docs:

在Heroku的阿斯彭,竹堆,使用heroku workers 1

在雪松堆棧,你把這個線你Procfile:

worker: bundle exec rake jobs:work 

然後做heroku scale worker=1

+0

我有一個額外的工作人員一直在運行,但這些工作似乎並沒有在終端上運行命令而開始。它在竹垛上。 – Smickie

2

我們使用workless gem與我們的heroku堆棧。它在delayed_job隊列> 0時啓動worker,並在delayed_job隊列變爲0時退出worker。