アダプターとしてNet::HTTP
を使用すると、ユーザーはNet::HTTP
によって提供される再試行戦略に驚かされます。 これにより、さまざまな「問題」が発生します(例:#612と#771)。
Ruby <= 2.4でできることはあまりありませんが、Ruby 2.5はNet::HTTP
新しいmax_retries
提供するため、Faradayは利用可能になったときに自動的に設定する必要があります。
問題#612および#771を参照してください。
私はこの問題を見てきました。 #771で言及されている1つのアプローチは、デフォルトを0に設定することですが、構成された再試行の量に応じて変更します。 Retryミドルウェアに基盤となるアダプターを認識させ(一部のアダプターはこれをサポートしない可能性があるため)、このロジックをenv
条件付きで適用する必要があります。 アダプターは、再試行の量についても知る必要があります。
上記のアプローチの代わりに、再試行を行わないように設定できます。代わりに、再試行ロジックを再試行ミドルウェアに限定します。 結果がどうであれ、私はこれを@iMacTiaに迎えることが
私は間違いなく2番目のオプションを考えていました。
失敗したリクエストの再試行を処理できるRetryミドルウェアがすでにあります。
アダプタ(この場合はNet :: HTTP)は、自分でリクエストを再試行しないでください。
この場合に必要なのは、もちろん、このプロパティが使用可能な場合、Net :: HTTPアダプターにmax_retries
を0に設定するように指示することだけです。
@ iMacTia-これ以上同意できませんでした。 その場合はこれを拾います。