Qu'est-ce que "timeout" et "ouvrir le timeout" dans Faraday?

Puisque Faraday n'a pas de documentation, Je n'ai pas pu le trouver n'importe où. Qu'est-ce que "timeout" et quel "open timeout" dans Faraday?

31
demandé sur janko-m 2012-04-25 23:16:03

1 réponses

Si vous regardez le code source à https://github.com/lostisland/faraday/blob/master/lib/faraday/request.rb alors vous verrez:

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

Pas très utile, peut-être? Eh bien, si vous regardez L'adaptateur Net::HTTP de Faraday à https://github.com/lostisland/faraday/blob/master/lib/faraday/adapter/net_http.rb , vous verrez:

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

Jusqu'à présent, open_timeout {[12] } est équivalent à Net::HTTP open_timeout {[12] } qui est documenté comme:

Nombre de secondes pour attendre l'ouverture de la connexion. N'importe quel nombre peut être utilisé, y compris les flotteurs pour les fractions de secondes. Si L'objet HTTP ne peut pas ouvrir une connexion pendant autant de secondes, il déclenche une exception TimeoutError.

Et Faraday timeout {[12] } est équivalent à Net::HTTP read_timeout {[12] } qui est documenté comme:

Nombre de secondes pour attendre qu'un bloc soit lu (via un appel read(2)). N'importe quel nombre peut être utilisé, y compris les flotteurs pour secondes fractionnaires. Si L'objet HTTP ne peut pas lire les données pendant autant de secondes, il déclenche une exception TimeoutError.

77
répondu Rich Drummond 2014-12-07 13:30:01