我寫了一個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