Ruby on rails Rails open()超时。如何取消时限?

Ruby on rails Rails open()超时。如何取消时限?,ruby-on-rails,ruby,ruby-on-rails-3.1,Ruby On Rails,Ruby,Ruby On Rails 3.1,下面的代码给了我一个Timeout::Error open("#{local_file}", 'wb') do |file| file << open(remote_file_url).read end open(“#{local_file},'wb')do| file| file我注意到您正在打开一个远程文件“remote\u file\u url”。我想这就是超时的原因 对于初学者,我编写了一个net/http连接类,其中包含可以使用或建模的超时代码。(我相信开放的方法是使

下面的代码给了我一个
Timeout::Error

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

file我注意到您正在打开一个远程文件“remote\u file\u url”。我想这就是超时的原因

对于初学者,我编写了一个net/http连接类,其中包含可以使用或建模的超时代码。(我相信开放的方法是使用net/http)

您还可以在块中获得响应

e、 差不多

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

请看,也许这个答案会有帮助:我尝试了以下方法,但仍然无效:
open(“{coupons\u file}”)、'wb'、{:timeout=>99999999})
以及
open({coupons\u file}、'wb'、{:read\u timeout=>99999999999})
——我使用的是Ruby 1.9.x