Wenn Net::HTTP
als Adapter verwendet wird, werden Benutzer von der Wiederholungsstrategie von Net::HTTP
überrascht. Dies führt zu verschiedenen "Problemen" (zB #612 und #771).
Es gibt nicht viel, was wir für Ruby <= 2.4 tun können, aber Ruby 2.5 bietet eine neue max_retries
Konfiguration für Net::HTTP
so dass Faraday dies automatisch einstellen sollte, wenn es verfügbar ist.
Siehe Ausgaben #612 und #771.
Ich habe mir dieses Problem angesehen. Ein in #771 erwähnter Ansatz besteht darin, den Standardwert auf 0 zu setzen, ihn jedoch abhängig von der Anzahl der konfigurierten Wiederholungen zu ändern. Wir müssten die Retry-Middleware auf den zugrunde liegenden Adapter aufmerksam machen (da einige Adapter dies möglicherweise nicht unterstützen) und diese Logik bedingt in env
anwenden. Der Adapter müsste auch die Anzahl der Wiederholungen kennen.
Als Alternative zu diesem Ansatz können wir festlegen, dass keine Wiederholungen durchgeführt werden, sondern die Wiederholungslogik auf die Wiederholungs-Middleware beschränkt bleibt. Was auch immer das Ergebnis ist, ich würde mich sehr freuen, dies @iMacTia abzuholen .
Ich habe definitiv an die zweite Möglichkeit gedacht.
Wir haben bereits die Retry-Middleware, die sich um die Wiederholung fehlgeschlagener Anforderungen kümmern kann.
Adapter (in diesem Fall Net::HTTP) sollten Anfragen niemals alleine wiederholen.
Alles, was wir in diesem Fall tun müssen, ist, den Net::HTTP-Adapter anzuweisen, max_retries
auf 0 zu setzen, wenn diese Eigenschaft natürlich verfügbar ist
@iMacTia - Ich könnte nicht mehr zustimmen. In diesem Fall werde ich das aufheben.