Ruby:read_timeout和open_timeout之间的区别

标题解释了自己…… read_timeout和open_timeout之间的区别是什么?

关心法克

open_timeout是您愿意等待“打开连接”的时间。 在TCP上下文中,在丢弃尝试并抛出超时错误之前等待握手完成的时间。

您可能猜到的read_timeout是您愿意等待从关联方收到某些数据的时间。 一个例子可能会说明这一点:

在SOAP over HTTP over TCP上下文(简化):

  • 您尝试与服务器建立TCP连接。 如果连接建立的时间超过open_timeout,则会丢弃连接尝试并引发/ signal / return timeout错误。

  • 如果连接成功,则发送HTTP请求。 (这也可能失败,并且可能有自己的超时)

  • 然后等待服务器的响应。 如果响应时间超过read_timeout,则丢弃连接并引发/ signal / return timeout错误。