38

由于法拉第没有文档,我无法在任何地方找到它。法拉第中的“超时”和“打开超时”是什么?

4

1 回答 1

103

如果您查看https://github.com/lostisland/faraday/blob/master/lib/faraday/request.rb的源代码,您将看到:

#   :timeout      - open/read timeout Integer in seconds
#   :open_timeout - read timeout Integer in seconds

也许不是很有帮助?好吧,如果您查看https://github.com/lostisland/faraday/blob/master/lib/faraday/adapter/net_http.rb上的 Faraday 的 Net::HTTP 适配器,您会看到:

http.read_timeout = http.open_timeout = req[:timeout] if req[:timeout]
http.open_timeout = req[:open_timeout]                if req[:open_timeout]

所以 Faraday 的open_timeout等价于 Net::HTTP 的open_timeout,它被记录为:

等待连接打开的秒数。可以使用任何数字,包括小数秒的浮点数。如果 HTTP 对象无法在这么多秒内打开连接,则会引发 TimeoutError 异常。

并且法拉第的超时等同于 Net::HTTP 的read_timeout,它被记录为:

等待读取一个块的秒数(通过一次 read(2) 调用)。可以使用任何数字,包括小数秒的浮点数。如果 HTTP 对象在这么多秒内无法读取数据,则会引发 TimeoutError 异常。

于 2012-04-25T21:02:16.707 回答