ダウンロードするファイル (~250) のリストを含む ruby スクリプトを作成しました。順次ダウンロードには時間がかかるためです。各ファイルを個別のスレッドでダウンロードすることを考えました。遅延を 20 に設定しましたが、すべてのスレッドが一度にサーバーにヒットしているように見えます。したがって、502 エラーが発生し、ファイルがダウンロードされません。サーバーに過負荷をかけることなく、すべてのファイルを並行してダウンロードするにはどうすればよいですか。
#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)