Я пишу скрипт на Ruby 1.8.7, который должен запрашивать действительно большие XML-файлы (1–5 МБ) с сервера, который довольно медленный (1 мин 30 с для 1 МБ). Запрашиваемый файл записывается на диск.
Я установил тайм-аут в своем скрипте на несколько смехотворных секунд, поскольку я действительно хочу получить файл, а не просто двигаться дальше, если это занимает слишком много времени. Все еще с большим количеством секунд я продолжаю получать тайм-ауты.
Есть ли лучшая практика для этого?
сейчас я использую
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
теперь заданное время ожидания было установлено в секундах, что увеличило бы 6000000
больше, чем на 1 мин 30 с, но каким-то образом оно не использует мое время ожидания в секундах. Обратите внимание, что я ограничен использованием Ruby 1.8.7