Rails открыт () время ожидания.Как снять ограничение по времени? - PullRequest
0 голосов
/ 14 ноября 2011

Следующий код дает мне Timeout::Error

open("#{local_file}", 'wb') do |file|
  file << open(remote_file_url).read
end

Как увеличить время ожидания? Файл для загрузки имеет большой размер и обычно занимает более 2 минут в браузере.

1 Ответ

0 голосов
/ 15 ноября 2011

Я заметил, что вы открываете удаленный файл "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 / сеть / HTTP / RDoc / Net / HTTP.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...