サーバーから非常に大きな XML ファイル (1 - 5MB) を要求する必要がある Ruby 1.8.7 スクリプトを作成していますが、これは非常に低速です (1MB で 1 分 30 秒)。要求されたファイルがディスクに書き込まれます。
時間がかかりすぎる場合に先に進むのではなく、本当にファイルを取得したいので、スクリプトのタイムアウトをばかげた秒数に設定しました。まだ秒数が多いので、タイムアウトが発生し続けます。
これに対するベストプラクティスはありますか?
今私が使っている
open(DIR + "" + number + "" + ".xml", 'wb') do |file|
begin
status = Timeout::timeout(6000000) do
file << open(url).read
end
rescue Timeout::Error => e
Rails.logger.info "Timeout for:" + number.to_s
end
end
現在、タイムアウトは秒単位で設定されているため、 1分30秒6000000
以上になりますが、どういうわけかタイムアウトを秒単位で使用していません。私はRuby 1.8.7の使用に制限されていることにもう一度注意してください