ruby timeout faraday

ruby - ¿Qué es el "tiempo de espera" y el "tiempo de espera abierto" en Faraday?



faraday github ruby (1)

Como Faraday no tiene documentación, no pude encontrarla en ningún lado. ¿Qué es el "tiempo de espera" y qué "tiempo de espera abierto" en Faraday?


Si observa el código fuente en https://github.com/lostisland/faraday/blob/master/lib/faraday/request.rb , verá:

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

No muy útil, tal vez? Bueno, si observa el adaptador Net :: HTTP de Faraday en https://github.com/lostisland/faraday/blob/master/lib/faraday/adapter/net_http.rb , verá:

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

Por lo tanto, open_timeout de Faraday es equivalente a open :: timeout de Net :: HTTP que se documenta como:

Número de segundos a esperar a que se abra la conexión. Se puede usar cualquier número, incluyendo Flotantes por segundos fraccionarios. Si el objeto HTTP no puede abrir una conexión en este número de segundos, genera una excepción TimeoutError.

Y el tiempo de espera de Faraday es equivalente a read_timeout de Net :: HTTP que se documenta como:

Número de segundos a esperar para que se lea un bloque (mediante una llamada de lectura (2)). Se puede usar cualquier número, incluyendo Flotantes por segundos fraccionarios. Si el objeto HTTP no puede leer datos en este número de segundos, genera una excepción de TimeoutError.