【发布时间】:2011-01-26 13:30:51
【问题描述】:
从可能很慢的网站读取数据时,我想确保 get_response 不会挂起,因此添加了一个计时器以在 x 秒后超时。到目前为止,一切都很好。然后我阅读了http://ph7spot.com/musings/system-timer,它说明在某些情况下 timer.rb 由于 ruby 的线程实现而无法工作。
有人知道这是不是其中一种情况吗?
url = URI.parse(someurl)
begin
Timeout::timeout(30) do
response = Net::HTTP.get_response(url)
@responseValue = CGI.unescape(response.body)
end
rescue Exception => e
dosomething
end
【问题讨论】:
-
不知何故我的代码示例被修改了。
-
已为您修复。所有代码都需要缩进 4(四个)空格。
-
在 ruby 中的约定是缩进 2(两个)空格
标签: ruby-on-rails http multithreading timeout