我写了一个ruby脚本,其中包含要下载的文件列表(〜250)。由于顺序下载需要很长时间。我想在单独的线程中下载每个文件。尽管我已经给出了20的延迟,但它看起来像所有的线程一次触击服务器。因此,我得到502错误,并没有下载任何文件。如何在不超载服务器的情况下并行下载所有文件。延迟使用ruby线程
#list of fiiles
files = []
threads = []
files.each do |file|
threads << Thread.new(file){ | file |
sleep(20)
#Download the file using either curb or Net::HTTP
sleep(20)
}
end
threads.each(&:join)
你的线程都具有相同的延迟,你一次启动它们。 – Yossi 2012-07-26 06:46:08