0
我有一个任务,将需要很长时间,所以我把它分成3部分,并希望启动三个线程,将同时工作(我确保没有任何访问的相同的变量或任何东西,别担心,他们严格处理自己的数据集)。sidekiq多线程如何去
至于我可以告诉sidekiq推出每个工作一个新的线程,所以我在做app/workers
三名工人importer
,importer2
,importer3
,所有。在我的控制器之一,我有这样的代码:
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`
任何想法,为什么?
同意。你做的是正确的事情,但这听起来像你内存不足。 – 2014-12-02 23:01:07