2012-04-25 55 views

回答

71

如果你看一下在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 

不是非常有幫助,也許?好吧,如果你看一下法拉第的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] 

所以法拉第open_timeout相當於淨:: HTTP的open_timeout其記錄爲:

等待連接打開的秒數。可以使用任何數字,包括小數秒的浮點數。如果HTTP對象在幾秒鐘內無法打開連接,則會引發TimeoutError異常。

和法拉第超時相當於淨:: HTTP的read_timeout其被記錄爲:等待

的秒數爲經由一個讀取(讀出一個塊(2)呼叫)。可以使用任何數字,包括小數秒的浮點數。如果HTTP對象在這幾秒鐘內無法讀取數據,則會引發TimeoutError異常。

+1

非常好的答案,謝謝:)。是的,我也遇到了法拉第的描述,是的,這不是很有幫助。但是這真的很棒:) – 2012-04-26 11:43:06