ruby on rails - open url is Timeout::Error


  uniqUsers = User.find(params[:userid]).events.where("comingfrom != ''").uniq_by {|obj| obj.comingfrom}
  uniqUsers.map do |elem|
     begin
       @tag = nil
       open('http://localhost:3000/search_dbs/show?userid='+ params[:userid] + '&fromnumber=' + elem.comingfrom + '&format=json', 'r', :read_timeout=>1) do |http|
         @tag = http.read
       end
     rescue  Exception => e
      puts "failes"
      puts e
     end
 end

嗨,这让我发疯了,由于某种原因,打开 url 命令的时间已经用完了,没有错误。 当我在 Chrome 中尝试相同的 URL 时,一切都像魅力一样工作,当我从代码中执行此操作时,我得到超时::错误

一秒钟是乐观的。

当我编写蜘蛛时,我会创建一个重试队列,其中包含子数组或对象,其中包含以前尝试的重试次数、URL 以及可能的上次超时值。使用递增超时值,第一次我会尝试一秒,第二次尝试两秒、四秒、八秒、十六秒等,直到我确定站点不会响应。

相关内容

最新更新