Deter un bucle de rotación de proxies que non remata
Dálle a un conxunto de proxies en Python un orzamento finito de intentos e distingue os fallos de conexión das respostas do destino.
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.