Ruby:read_timeout和open_timeout之间的区别

时间:2013-07-03 16:16:03

标签: ruby

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

1 个答案:

答案 0 :(得分:12)

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

正如您可能猜到的那样,

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

通过TCP上下文的SOAP over HTTP(简化):

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

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

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