在ruby / rails中,您能否区分无网络响应和长时间响应?

时间:2016-01-22 19:16:27

标签: ruby-on-rails ruby ssl connection-timeout

我们有一个与box.com集成的Rails应用程序。我们的应用程序对盒子操作的请求相当频繁地发生,导致Passenger进程被约束大约15分钟,然后我们得到以下异常:

Errno::ETIMEDOUT: Connection timed out - SSL_connect

通常情况下它应该相当快,例如列出小文件夹的内容或删除单个文档。

我认为这些请求实际上从未真正进入过开放频道,无论是在tcp还是ssl级别,我们都没有得到初始响应,或者完全握手/会话设置从未完成。

我想让这种情况快速超时,比如15秒,但允许成功传输的大文件继续。

当这些级别中的任何一个级别的连接无法完成设置时,是否有任何方法可以让TCP或SSL更快地提高超时,但如果会话成功建立并且它刚刚接受,则不会引发异常很长一段时间才真正传输数据?

以下是我们当前代码的样子 - 我们不依赖于这样做(我没有编写此代码):

def box_delete(uri)
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true
  http.verify_mode = OpenSSL::SSL::VERIFY_NONE
  request = Net::HTTP::Delete.new(uri.request_uri)
  http.request(request)
end

0 个答案:

没有答案