Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby sidekiq多线程操作_Ruby_Multithreading_Ruby On Rails 4_Sidekiq - Fatal编程技术网

Ruby sidekiq多线程操作

Ruby sidekiq多线程操作,ruby,multithreading,ruby-on-rails-4,sidekiq,Ruby,Multithreading,Ruby On Rails 4,Sidekiq,我有一个任务需要很长时间,所以我把它分为三部分,并希望启动三个线程来同时处理它(我确保不会访问相同的变量或任何东西,别担心,他们严格处理自己的数据集) 据我所知,sidekiq为每个工作人员启动了一个新线程,因此我创建了三个工作人员importer,importer2,importer3,都在app/workers中。在我的一个控制器中,我有以下代码: Importer.perform_async(arrays[0], date) Importer2.perform_async(arrays[1

我有一个任务需要很长时间,所以我把它分为三部分,并希望启动三个线程来同时处理它(我确保不会访问相同的变量或任何东西,别担心,他们严格处理自己的数据集)

据我所知,sidekiq为每个工作人员启动了一个新线程,因此我创建了三个工作人员
importer
importer2
importer3
,都在
app/workers
中。在我的一个控制器中,我有以下代码:

Importer.perform_async(arrays[0], date)
Importer2.perform_async(arrays[1], date)
Importer3.perform_async(arrays[2], date)
render json: 1
我的问题是:这是处理这个问题的最好方法吗

奇怪的是,a)对控制器的请求将花费如此长的时间来呈现
1
,在sidekiq日志中,我可以看到
导入器JID-639e67d2aa20cce885690dc7信息:start
导入器2
的相同,但不是3,然后sidekiq就退出了
终止了

当我重新启动sidekiq时,我得到了
Importer3。。。启动
,然后它是唯一工作的(它更新DB值,并且是唯一更改的)`


想知道为什么吗?

你确定你有足够的内存吗?也许这会有帮助:

你确定你有足够的内存吗?也许这会有帮助:

你确定你有足够的内存吗?也许这会有帮助:

同意。你做的事情是正确的,但我你在做正确的事情,但听起来你的内存不足。同意。你在做正确的事情,但听起来你的内存不足。同意。你在做正确的事情,但听起来你的内存不足。同意。你在做正确的事情,但听起来你的内存不足。