Faraday: L'adaptateur Net::HTTP réessaye automatiquement les requêtes

Créé le 21 févr. 2018  ·  3Commentaires  ·  Source: lostisland/faraday

Informations de base

  • Version Faraday : tout
  • Version Rubis : 2.5+

Description du problème

Lorsqu'ils utilisent Net::HTTP comme adaptateur, les utilisateurs sont surpris par la stratégie de nouvelle tentative fournie par Net::HTTP . Cela amène à différents "problèmes" (par exemple #612 et #771).
Nous ne pouvons pas faire grand-chose pour Ruby <= 2.4, cependant Ruby 2.5 fournit une nouvelle configuration max_retries pour Net::HTTP donc Faraday devrait la définir automatiquement lorsqu'elle sera disponible.

Étapes à reproduire

Voir les numéros 612 et 771.

feature help wanted

Tous les 3 commentaires

J'ai étudié ce problème. Une approche mentionnée dans #771 consiste à définir la valeur par défaut sur 0, mais à la modifier en fonction du nombre de tentatives configurées. Nous devrions informer le middleware Retry de l'adaptateur sous-jacent (car certains adaptateurs pourraient ne pas le prendre en charge) et appliquer cette logique sous condition dans le env . L'adaptateur devrait également connaître le nombre de tentatives.

Comme alternative à cette approche, nous pouvons la configurer pour qu'elle ne fasse pas de nouvelles tentatives, en maintenant la logique de nouvelle tentative confinée au middleware Retry. Quel que soit le résultat, je serais plus qu'heureux de le prendre @iMacTia .

Je pensais vraiment à la deuxième option.
Nous avons déjà le middleware Retry qui peut s'occuper de réessayer les requêtes ayant échoué.
Les adaptateurs (dans ce cas, Net::HTTP) ne doivent jamais relancer les requêtes par eux-mêmes.

Tout ce que nous devons faire dans ce cas est de dire à Net::HTTP adapter max_retries à 0, si cette propriété est disponible, bien sûr

@iMacTia - Je ne pourrais pas être plus d'accord. Dans ce cas, je reprendrai ça.

Cette page vous a été utile?
0 / 5 - 0 notes