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错误。