【发布时间】:2013-01-23 22:38:35
【问题描述】:
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 时,一切都像魅力一样,当我从代码中执行此操作时,我得到 Timeout::Error
【问题讨论】:
-
您是否在与 Chrome 相同的机器上运行它?您是否有阻止 Ruby 建立连接的应用程序级防火墙?
-
你试过增加
read_timeout吗?您将其设置为仅一秒 (:read_timeout=>1),这可能还不够。尝试将其设置为更高的值。 -
一秒非常少。有些网站无法在 5 秒内齐心协力。
-
请花时间格式化您的代码以使其可读,并删除所有不必要的代码。将其减少到证明问题所需的最低限度。
-
我试了 30 秒,还是一样的问题。没有防火墙,
标签: ruby-on-rails ruby json url