我创建了一个程序,可以将网站从谷歌中删除,然后将其删除到基本网址:例如http://google.com/search/owie/weikw => http://google.com。然后将它们保存到文件中。
之后它在文件上运行.each_line
然后运行whois
命令,我想要做的是如果命令在一定时间内没有响应,跳过文件的行并转到下一个,有没有办法可以做到这一点?
答案 0 :(得分:2)
如果您的scraper或whois本身不支持超时,您可以使用Timeout::timeout以秒为单位设置上限。例如:
require 'timeout'
MAX_SECONDS = 10
begin
Timeout::timeout(MAX_SECONDS) do
# run your whois
end
rescue Timeout::Error
# handle the exception
end
默认情况下,如果块超出时间限制,则会引发Timeout::Error异常,但如果您愿意,可以使用该方法引发其他异常。您如何处理异常取决于您。