Faraday: Net :: HTTPアダプタはリクエストを自動的に再試行します

作成日 2018年02月21日  ·  3コメント  ·  ソース: lostisland/faraday

基本情報

  • ファラデーバージョン:任意
  • Rubyバージョン:2.5以降

問題の説明

アダプターとしてNet::HTTPを使用すると、ユーザーはNet::HTTPによって提供される再試行戦略に驚かされます。 これにより、さまざまな「問題」が発生します(例:#612と#771)。
Ruby <= 2.4でできることはあまりありませんが、Ruby 2.5はNet::HTTP新しいmax_retries提供するため、Faradayは利用可能になったときに自動的に設定する必要があります。

再現する手順

問題#612および#771を参照してください。

feature help wanted

全てのコメント3件

私はこの問題を見てきました。 #771で言及されている1つのアプローチは、デフォルトを0に設定することですが、構成された再試行の量に応じて変更します。 Retryミドルウェアに基盤となるアダプターを認識させ(一部のアダプターはこれをサポートしない可能性があるため)、このロジックをenv条件付きで適用する必要があります。 アダプターは、再試行の量についても知る必要があります。

上記のアプローチの代わりに、再試行を行わないように設定できます。代わりに、再試行ロジックを再試行ミドルウェアに限定します。 結果がどうであれ、私はこれを@iMacTiaに迎えることが

私は間違いなく2番目のオプションを考えていました。
失敗したリクエストの再試行を処理できるRetryミドルウェアがすでにあります。
アダプタ(この場合はNet :: HTTP)は、自分でリクエストを再試行しないでください。

この場合に必要なのは、もちろん、このプロパティが使用可能な場合、Net :: HTTPアダプターにmax_retriesを0に設定するように指示することだけです。

@ iMacTia-これ以上同意できませんでした。 その場合はこれを拾います。

このページは役に立ちましたか?
0 / 5 - 0 評価