所以我有一个脚本,该脚本将收集有关某些域名的一些信息,在某些情况下,这些域名甚至都不再注册,并且它们的IP地址无法解析。发生这种情况时,我会从中收到以下错误消息:
response = Net::HTTP.start(uri.host, uri.port) {|http|
http.request(request)
}
错误:
[5] pry(WebRequest)* }
SocketError: Failed to open TCP connection to ekjrhtekjhterhter.net:80 (getaddrinfo: Name or service not known)
from /home/user/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/net/http.rb:939:in `rescue in block in connect'
我尝试使用open_timeout
和read_timeout
选项,如下所示:
response = Net::HTTP.start(uri.host, uri.port, :open_timeout => 1, :read_timeout => 1) {|http|
http.request(request)
}
但是它静止大约需要5-10秒,然后它最终给了我这个错误:
[9] pry(WebRequest)* }
Net::OpenTimeout: execution expired
from /home/user/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/net/http.rb:937:in `initialize'
我基本上不希望此请求的运行时间超过2秒(尽管我知道本示例中的请求为1),但是由于某种原因,它仍然无法正常工作。
我在做什么错了?