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 需要多线程SQL处理的帮助吗_Ruby_Multithreading - Fatal编程技术网

Ruby 需要多线程SQL处理的帮助吗

Ruby 需要多线程SQL处理的帮助吗,ruby,multithreading,Ruby,Multithreading,我正在处理一个SQL表,但它有20000多行,所以需要花费很长时间 所以我考虑使用一个线程管理器:发送10-20个线程来处理SQL结果,然后在它们完成后再发送10个线程。我在数据库中有一列指示表是否已被处理 我正在使用Sequel and no Rails。以下是如何在ruby中创建10个线程并等待它们完成: threads = [] 0..10.times do threads << Thread.new do processDb() end end thread

我正在处理一个SQL表,但它有20000多行,所以需要花费很长时间

所以我考虑使用一个线程管理器:发送10-20个线程来处理SQL结果,然后在它们完成后再发送10个线程。我在数据库中有一列指示表是否已被处理


我正在使用Sequel and no Rails。

以下是如何在ruby中创建10个线程并等待它们完成:

threads = []
0..10.times do 
  threads << Thread.new do
    processDb()
  end
end
threads.each { |t| t.join } # wait for thread to finish
threads=[]
0..10.5倍

线程听起来好像线程并没有什么帮助。你需要检查这么多条目的数据加载情况。没有办法创建10个使用相同方法的线程吗?例如:
10个线程执行ProcessDB(id)
?创建线程不是问题,我是在评论策略。瓶颈是数据库服务器,而不是应用程序。我严重怀疑运行线程是否真的能加快速度。我会尽快开始实现。如果一切顺利,我将投票作为答案。你帮了我大忙,我非常感谢你抽出时间。