法拉第里的"超时"和"开启超时"是什么?

jan*_*o-m 32 ruby timeout faraday

由于法拉第没有文件,我无法在任何地方找到它.什么是"超时"以及法拉第中的"开启超时"?

Ric*_*ond 83

如果您查看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
Run Code Online (Sandbox Code Playgroud)

也许不是很有帮助吗?好吧,如果你看看法拉第的Net :: HTTP适配器,访问https://github.com/lostisland/faraday/blob/master/lib/faraday/adapter/net_http.rb,你会看到:

http.read_timeout = http.open_timeout = req[:timeout] if req[:timeout]
http.open_timeout = req[:open_timeout]                if req[:open_timeout]
Run Code Online (Sandbox Code Playgroud)

所以法拉第的open_timeout相当于Net :: HTTP的open_timeout,记录为:

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

而法拉第的超时相当于Net :: HTTP的read_timeout,记录为:

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

  • 很棒的答案,谢谢:)。是的,我也看到了法拉第的描述,是的,它不是很有帮助。但这真的很棒:) (3认同)