[英]What can I do about Mechanize waiting on an unresponsive web site?
有几种方法可以解决它。
Open-Uri和Net :: HTTP都有传递超时值的方法,然后告诉底层网络堆栈你愿意等多久。 例如,Mechanize允许您在初始化实例时获取其设置,例如:
mech = Mechanize.new { |agent|
agent.open_timeout = 5
agent.read_timeout = 5
}
这一切都在new
文档中,但您必须查看源代码以查看可以获得的实例变量。
或者你可以使用Ruby的timeout
模块:
require 'timeout'
status = Timeout::timeout(5) {
# Something that should be interrupted if it takes too much time...
}
http://mechanize.rubyforge.org/mechanize/Mechanize.html此页面上有2个无证属性open_timeout
和read_timeout
,请尝试使用它们。
agent = Mechanize.new { |a| a.log = Logger.new("mech.log") }
agent.keep_alive=false
agent.open_timeout=15
agent.read_timeout=15
HTH
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.