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

时间:2012-04-25 19:16:04

标签: ruby timeout faraday

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

1 个答案:

答案 0 :(得分:80)

如果您查看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查看法拉第的Net :: HTTP适配器,你会看到:

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

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

  

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

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

  

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