我想查看下面代码中使用Benchmark
访问URL所花费的时间。我也试图在没有基准的情况下做同样的事情。也就是说,在测试开始和测试结束时获得时间,减去两者以获得时间。两种方法都以相同的超时错误结束。防止连接到URL时发生超时
require 'open-uri'
require 'benchmark'
response = nil
puts "opening website with benchmark..."
puts Benchmark.measure{
response = open('http://mywebsite.com')
}
puts "Done !"
status = response.status
puts status
错误:
opening website with benchmark...
C:/ruby/lib/ruby/1.8/timeout.rb:64:in `rbuf_fill': execution expired (Timeout::Error)
from C:/ruby/lib/ruby/1.8/net/protocol.rb:134:in `rbuf_fill'
from C:/ruby/lib/ruby/1.8/net/protocol.rb:116:in `readuntil'
from C:/ruby/lib/ruby/1.8/net/protocol.rb:126:in `readline'
from C:/ruby/lib/ruby/1.8/net/http.rb:2028:in `read_status_line'
from C:/ruby/lib/ruby/1.8/net/http.rb:2017:in `read_new'
from C:/ruby/lib/ruby/1.8/net/http.rb:1051:in `request'
from C:/ruby/lib/ruby/1.8/open-uri.rb:248:in `open_http'
from C:/ruby/lib/ruby/1.8/net/http.rb:543:in `start'
from C:/ruby/lib/ruby/1.8/open-uri.rb:242:in `open_http'
from C:/ruby/lib/ruby/1.8/open-uri.rb:616:in `buffer_open'
from C:/ruby/lib/ruby/1.8/open-uri.rb:164:in `open_loop'
from C:/ruby/lib/ruby/1.8/open-uri.rb:162:in `catch'
from C:/ruby/lib/ruby/1.8/open-uri.rb:162:in `open_loop'
from C:/ruby/lib/ruby/1.8/open-uri.rb:132:in `open_uri'
from C:/ruby/lib/ruby/1.8/open-uri.rb:518:in `open'
from C:/ruby/lib/ruby/1.8/open-uri.rb:30:in `open'
from C:/code/test.rb:7
from C:/ruby/lib/ruby/1.8/benchmark.rb:293:in `measure'
from C:/code/test.rb:6
当我尝试连接到这个网址在浏览器中,大约需要2-3分钟访问,所有的时间。
我搜索谷歌,但没有找到有用的答案,我的问题。我知道我必须 更改超时设置的东西,但无法弄清楚哪一个。有人可以帮忙吗?
谢谢。如何将超时设置为无穷大?无法从您提供的链接中快速获得答案。超时= -1 – 2014-09-26 19:32:56
我得到的错误 - '语法错误,意外':',期待')' response = open(url,read_timeout:300)' – 2014-09-26 19:33:48
@BoratSagdiyev ...您应该使用正确的映射语法为您的Ruby版本然后。我会编辑我的答案,但能够从代码示例中推断出来是一项宝贵的技能。 – 2014-09-26 19:43:34