[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

How to change the Timeout::Error threshold for open_uri

Keith Carter

3/20/2008 8:19:00 PM

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...) { |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.
--
Posted via http://www.ruby-....

3 Answers

Keith Carter

3/21/2008 1:28:00 AM

0

Shameless bump. Shoud I be posting on another forum?
--
Posted via http://www.ruby-....

Mikel Lindsaar

3/21/2008 4:54:00 AM

0

> Does anyone know how to fix this? I want it to wait longer for
> the web server to respond.

Look in the docs/code and you shall find...

OpenURI wraps net/http and net/https

Looking in net/http finds these accessor methods:

# Seconds to wait until connection is opened.
# If the HTTP object cannot open a connection in this many seconds,
# it raises a TimeoutError exception.
attr_accessor :open_timeout

# Seconds to wait until reading one block (by one read(2) call).
# If the HTTP object cannot open a connection in this many seconds,
# it raises a TimeoutError exception.
attr_reader :read_timeout


Maybe that would help.

Mikel

John Powers

5/4/2009 12:02:00 AM

0

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...) { |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-....