Что такое тайм-аут и открытый тайм-аут в Faraday?

Поскольку у Фарадея нет документации, я не смог найти ее нигде. Что такое «тайм-аут» и что такое «тайм-аут открытия» в Фарадее?


person janko-m    schedule 25.04.2012    source источник


Ответы (1)


Если вы посмотрите на исходный код на 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

Не очень полезно, наверное? Что ж, если вы посмотрите на адаптер Faraday 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 Фарадея эквивалентен open_timeout Net::HTTP, который задокументирован как:

Количество секунд ожидания открытия соединения. Можно использовать любое число, включая числа с плавающей запятой для дробных секунд. Если объект HTTP не может открыть соединение в течение этого количества секунд, он вызывает исключение TimeoutError.

И timeout Фарадея эквивалентен read_timeout Net::HTTP, который задокументирован как:

Количество секунд ожидания чтения одного блока (через один вызов read(2)). Можно использовать любое число, включая числа с плавающей запятой для дробных секунд. Если объект HTTP не может прочитать данные в течение этого количества секунд, он вызывает исключение TimeoutError.

person Rich Drummond    schedule 25.04.2012
comment
Потрясающий ответ, спасибо :). Да, я также наткнулся на описание Фарадея, и да, оно не очень помогло. Но это действительно здорово :) - person janko-m; 26.04.2012
comment
Все равно отличный ответ! - person SexxLuthor; 21.07.2020