【发布时间】:2015-08-23 12:52:54
【问题描述】:
我有一个 url 数组。我正在浏览每一个,发送一个获取请求并打印响应代码。以下是部分代码:
arr.each do |url|
res = Faraday.get(link.href)
p res.status
end
但有时我访问 url,它会超时并崩溃。有没有办法告诉 ruby “如果我在一定时间内没有得到响应,那么就跳到下一个 url?”
【问题讨论】:
我有一个 url 数组。我正在浏览每一个,发送一个获取请求并打印响应代码。以下是部分代码:
arr.each do |url|
res = Faraday.get(link.href)
p res.status
end
但有时我访问 url,它会超时并崩溃。有没有办法告诉 ruby “如果我在一定时间内没有得到响应,那么就跳到下一个 url?”
【问题讨论】:
您可以像这样添加超时:
require 'timeout'
arr.each do |url|
begin
Timeout.timeout(5) do # a timeout of five seconds
res = Faraday.get(link.href)
p res.status
end
rescue Timeout::Error
# handle error: show user a message?
end
end
【讨论】: