2013-04-07 56 views
1

我正在使用Resque在Heroku上進行大量數據處理。Heroku上的resque優化

使用NewRelic,我看到我的任務使用了大約15%的CPU份額和每個實例50mo的RAM。

我只能使用一個測功機處理5個作業。

但我不知道該怎麼做。

我試圖在procfile中使用COUNT = 5,但它似乎不工作。此外,ResqueRetry沒有看到失敗的作業這種方式...

任何人都知道該怎麼做?

回答

0

你需要做幾件事情要你Procfile

首先添加COUNT環境變量,然後更改從resque命令:工作resque:工人

下面是一個例子

resque: env TERM_CHILD=1 RESQUE_TERM_TIMEOUT=10 COUNT=2 QUEUE=* bundle exec rake resque:workers 

我在Heroku上測試過這個解決方案,只有1個resque dyno,看到我發送的2個作業一次被處理。

+1

此解決方案的問題是,如果其中一個作業失敗,則不會通過Resque Retry發送到重試隊列。 此外,其中一個過程可能會在您沒有注意到的情況下死亡。 這顯然是一個不好的做法:/ – Dam 2013-06-05 13:06:22