【发布时间】:2010-11-02 04:50:14
【问题描述】:
我遇到了在 JRuby (Linux) 下无法可靠运行的超时问题。更具体地说,如果我向远程服务器发送 HEAD 请求并且该服务器正忙(不响应),则配置的超时不会触发并且我的应用程序会长时间停止。我都尝试了,设置read_timeout 并使用timeout() 函数,但没有一个可靠工作:
Timeout::timeout(5) do
Net::HTTP.start(uri.host, uri.port) do |http|
http.read_timeout = 5
http.request_head(uri.request_uri)
end
end
对于 Ruby,此问题在 SystemTimer 页面上广泛记录。但是,建议的 SystemTimer gem 不能与 JRuby 一起使用。
有人知道如何在 JRuby 中获得可靠的 HTTP 请求超时吗?
PS:这是 JRuby 1.1.6 / 32 位 Linux / Sun Java 1.6
【问题讨论】: