如果响应太长时间使用ruby,请跳过http请求

时间:2015-08-23 12:52:55

标签: ruby http

我有一系列网址。我正在浏览每一个,发送一个get请求并打印响应代码。以下是代码的一部分:

arr.each do |url|
  res = Faraday.get(link.href)
  p res.status
end

然而,有时我会到达网址,它会超时并崩溃。有没有办法告诉红宝石“如果我在一定时间内没有收到回复,那么跳到下一个网址?”

1 个答案:

答案 0 :(得分:4)

您可以像这样添加超时:

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