Un conxunto de proxies pode converter unha simple caída nun bucle ocupado. Escolle un enderezo, falla, escolle outro, falla de novo. Se todos os puntos finais son inaccesibles porque a túa propia rede está caída, cambiar de enderezo nunca arranxa a causa.

Dálle á operación un orzamento antes de escoller o primeiro proxy do teu conxunto ou da lista de proxies gratuítos: un número finito de intentos, esperas de conexión e lectura limitadas e un prazo para a tarefa completa. Un timeout de Requests controla o seu comportamento documentado de conexión ou lectura; por si só non limita un bucle que segue emitindo novas peticións.

Decide que merece outro intento

  • Unha conexión de proxy rexeitada pode xustificar probar outro punto final.
  • Unha resposta do destino necesita a súa propia interpretación. Recibir un erro HTTP demostra que algún camiño de petición se completou.
  • Un fallo de autenticación do proxy pide revisar o punto final e a conta en lugar de martelar as mesmas credenciais por unha lista crecente.

Conserva a excepción ou o estado orixinal co rexistro do intento. Unha mensaxe final que só diga «todos os proxies fallaron» oculta se os fallos tiñan sequera a mesma causa.

Comprobar a saúde de cada proxy antes de cada petición real engade outra petición e aínda así non garante que a seguinte vaia funcionar. Reutiliza a información de saúde recente cando encaixe coa tarefa e deixa que a operación real informe o seu propio resultado.

Un reintento pode repetir o traballo

Para unha lectura de só lectura, pasar a outro proxy adoita ser máis sinxelo que reenviar un envío. Se unha conexión cae tras enviar unha compra ou un formulario, o destino pode xa procesalo. Segue o mecanismo de idempotencia do servizo e as regras de reintento de HTTP antes de repetir o traballo.

Cando se esgote o orzamento, devolve un fallo útil. Un traballo que se detén con evidencias é máis fácil de reparar que un que segue rotando en silencio ata que alguén o nota.

Artigos relacionados