【问题标题】:Skip a http request if response if taking too long with ruby如果响应时间过长,则跳过 http 请求
【发布时间】:2015-08-23 12:52:54
【问题描述】:

我有一个 url 数组。我正在浏览每一个,发送一个获取请求并打印响应代码。以下是部分代码:

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

但有时我访问 url,它会超时并崩溃。有没有办法告诉 ruby​​ “如果我在一定时间内没有得到响应,那么就跳到下一个 url?”

【问题讨论】:

标签: ruby http


【解决方案1】:

您可以像这样添加超时:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-12
    • 2023-03-10
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 2017-09-24
    • 1970-01-01
    相关资源
    最近更新 更多