Следующий код дает мне Timeout::Error
open("#{local_file}", 'wb') do |file|
file << open(remote_file_url).read
end
Как увеличить время ожидания? Загружаемый файл большой и обычно занимает более 2 минут в браузере.
Следующий код дает мне Timeout::Error
open("#{local_file}", 'wb') do |file|
file << open(remote_file_url).read
end
Как увеличить время ожидания? Загружаемый файл большой и обычно занимает более 2 минут в браузере.
Я заметил, что вы открываете удаленный файл «remote_file_url». Я предполагаю, что это то, откуда происходит тайм-аут.
Для начала я написал класс соединения net/http, который включает код тайм-аута, который вы можете использовать или смоделировать. https://github.com/bf4/Notes/blob/master/code/connection.rb (я полагаю, что открытый метод использует net/http)
Вы также можете получить ответ в блоке
например что-то типа
local_file, url, timeout = 'foo', 'http://www.example.com/index.html', 60
File.open(local_file, 'wb') do |file|
uri = URI.parse(url)
http = Net::HTTP.new(uri.host, uri.port)
http.open_timeout = timeout
http.read_timeout = timeout
http.use_ssl = (uri.scheme == 'https')
http.request_get(uri.request_uri) do |response|
response.read_body do |segment|
file.write(segment)
end
end
end
см. http://www.ruby-doc.org/stdlib-1.8.7/libdoc/net/http/rdoc/Net/HTTPResponse.html и http://www.ruby-doc.org/stdlib-1.8.7/libdoc/net/http/rdoc/Net/HTTP.html
open("#{coupons_file}", 'wb', {:timeout => 9999999999})
, а такжеopen("#{coupons_file}", 'wb', {:read_timeout => 9999999999})
-- я использую Ruby 1.9.x. - person Jacob   schedule 14.11.2011