From: John Powers Date: 2009-05-04T09:01:37+09:00 Subject: Re: How to change the Timeout::Error threshold for open_uri Keith Carter wrote: > When opening a particularly slow loading URL I am getting the following > error: > > Loading production environment (Rails 2.0.2) >>> require 'open-uri' > => ["OpenURI"] >>> > ?> open('http://www.wwtdd.com/?start=2331') { |f| > ?> puts " Opened successfully with charset: " + f.charset >>> } > /usr/lib64/ruby/1.8/timeout.rb:54:in `rbuf_fill': execution expired > (Timeout::Error) > from /usr/lib64/ruby/1.8/timeout.rb:56:in `timeout' > from /usr/lib64/ruby/1.8/timeout.rb:76:in `timeout' > from /usr/lib64/ruby/1.8/net/protocol.rb:132:in `rbuf_fill' > from /usr/lib64/ruby/1.8/net/protocol.rb:116:in `readuntil' > from /usr/lib64/ruby/1.8/net/protocol.rb:126:in `readline' > from /usr/lib64/ruby/1.8/net/http.rb:2029:in `read_status_line' > from /usr/lib64/ruby/1.8/net/http.rb:2018:in `read_new' > from /usr/lib64/ruby/1.8/net/http.rb:1059:in `request' > ... 9 levels... > from /usr/lib64/ruby/1.8/open-uri.rb:30:in `open' > from (irb):33:in `irb_binding' > from /usr/lib64/ruby/1.8/irb/workspace.rb:52:in `irb_binding' > from /usr/lib64/ruby/1.8/irb/workspace.rb:52 > > Does anyone know how to fix this? I want it to wait longer for the web > server to respond. require 'net/http' # Lengthen timeout in Net::HTTP module Net class HTTP alias old_initialize initialize def initialize(*args) old_initialize(*args) @read_timeout = 3*60 # 3 minutes end end end -- Posted via http://www.ruby-forum.com/.