2014-12-02 48 views
0

我有一個任務,將需要很長時間,所以我把它分成3部分,並希望啓動三個線程,將同時工作(我確保沒有任何訪問的相同的變量或任何東西,別擔心,他們嚴格處理自己的數據集)。sidekiq多線程如何去

至於我可以告訴sidekiq推出每個工作一個新的線程,所以我在做app/workers三名工人importerimporter2importer3,所有。在我的控制器之一,我有這樣的代碼:

Importer.perform_async(arrays[0], date) 
Importer2.perform_async(arrays[1], date) 
Importer3.perform_async(arrays[2], date) 
render json: 1 

我的問題是:是,最好的方式來處理呢?

這似乎很奇怪,一個)的請求,控制器會需要很長時間來渲染1並在sidekiq日誌,我可以看到Importer JID-639e67d2aa20cce885690dc7 INFO: start以及同爲Importer2而不是3,然後再sidekiq只是killed退出

當我重新啓動sidekiq,我得到的Importer3 ... start,然後它是唯一一個工作(它更新一個DB值,它是唯一一個changing`

任何想法,爲什麼?

回答

2

確定你有足夠的記憶?也許這可能會有所幫助:Debugging Mystery Sidekiq Shutdowns

+0

同意。你做的是正確的事情,但這聽起來像你內存不足。 – 2014-12-02 23:01:07