web-dev-qa-db-ja.com

ファラデーの「タイムアウト」と「オープンタイムアウト」とは何ですか?

ファラデーにはドキュメントがないので、どこにも見つけることができませんでした。ファラデーの「タイムアウト」と「オープンタイムアウト」とは何ですか?

33
janko-m

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は、文書化されているNet :: HTTPのopen_timeoutと同等です。なので:

接続が開くのを待つ秒数。分数秒のフロートを含め、任意の数を使用できます。 HTTPオブジェクトがこの秒数で接続を開くことができない場合、TimeoutError例外が発生します。

また、ファラデーのtimeoutは、文書化されているNet :: HTTPのread_timeoutと同等です。なので:

1つのブロックが読み取られるのを待機する秒数(1回のread(2)呼び出しを介して)。分数秒のフロートを含め、任意の数を使用できます。 HTTPオブジェクトがこの秒数でデータを読み取れない場合、TimeoutError例外が発生します。

82
Rich Drummond