Un pool de proxys pot convertir una simple caiguda en un bucle ocupat. Tria una adreça, falla, tria'n una altra, torna a fallar. Si cada punt final és inabastable perquè la teva pròpia xarxa està caiguda, canviar d'adreces no arregla mai la causa.

Dona a l'operació un pressupost abans de triar el primer proxy del teu pool o de la llista de proxys gratuïts: un nombre finit d'intents, esperes de connexió i lectura limitades i una data límit per a la tasca global. Un timeout de Requests controla el seu comportament documentat de connexió o lectura; no limita per si sol un bucle que segueix enviant peticions noves.

Decideix què es mereix un altre intent

  • Una connexió de proxy rebutjada pot justificar provar un altre punt final.
  • La resposta d'un destí necessita la seva pròpia interpretació. Rebre un error HTTP demostra que algun camí de petició s'ha completat.
  • Un error d'autenticació del proxy demana revisar el punt final i el compte en lloc de martellejar les mateixes credencials per una llista creixent.

Conserva l'excepció o l'estat original amb el registre de l'intent. Un missatge final que només diu «tots els proxys han fallat» amaga si les fallades tenien fins i tot la mateixa causa.

Comprovar la salut de cada proxy abans de cada petició real afegeix una altra petició i encara no pot garantir que la següent tingui èxit. Reutilitza informació de salut recent on encaixi amb la tasca i després deixa que l'operació real informi del seu resultat.

Un reintent pot repetir la feina

Per a una obtenció només de lectura, passar a un altre proxy sol ser més simple que reproduir un enviament. Si una connexió cau després d'enviar una compra o un formulari, el destí potser ja l'ha processat. Segueix el mecanisme d'idempotència del servei i les regles de reintent HTTP abans de reproduir la feina.

Quan el pressupost s'esgoti, retorna un error útil. Una tasca que s'atura amb proves és més fàcil de reparar que una que calladament continua rotant fins que algú se n'adona.

Articles relacionats