Selecciones aleatorias, pasadas mezcladas y puntos finales de proxy repetidos
Elija entre selecciones aleatorias independientes, una pasada mezclada y una política sin repetición inmediata, en lugar de tratar un punto final repetido como un rotador averiado.
Proxy B, proxy B otra vez y luego proxy A. Su registro parece sospechoso, pero un selector aleatorio tiene permitido hacer exactamente eso.
Elegir de la misma lista en cada solicitud permite repeticiones. Con dos puntos finales igualmente probables, la siguiente selección independiente tiene una probabilidad de una entre dos de coincidir con la anterior. Una serie corta con repeticiones no demuestra que el selector haya ignorado la lista.
Elija el comportamiento que realmente necesita
| Requisito | Regla de selección |
|---|---|
| Cada elección es independiente | Elija de la lista elegible cada vez |
| Use cada punto final una vez antes de empezar de nuevo | Mezcle una copia, consúmala y luego comience otra pasada |
| Evite el punto final inmediatamente anterior | Excluya ese punto final antes de elegir |
Para la última política, trate explícitamente el caso de un solo punto final:
candidates = [endpoint for endpoint in eligible if endpoint != previous]
if not candidates:
raise RuntimeError("No different eligible proxy is available")
selected = random.choice(candidates)
Este fragmento supone que random está importado y que la lista de puntos finales ya está validada. Un grupo público puede empezar con la lista gratuita de proxies cuando sus protocolos encajan con el cliente final; esta regla de selección sigue controlando las repeticiones. Si conviene esperar, reutilizar el único punto final o detenerse es una política de la aplicación. Un bucle infinito que espera un valor aleatorio distinto no puede resolver una lista que solo contiene una opción distinta.
En un despachador concurrente, seleccionar y registrar el punto final anterior también requiere una propiedad coordinada. De lo contrario, dos trabajadores pueden excluir ambos el valor antiguo y elegir el mismo valor siguiente.
Por último, esta regla se refiere a la identidad del punto final. Dos puntos finales distintos pueden llevar a una misma salida pública, y un punto final de proveedor puede llevar a varias salidas. Regístrelos por separado antes de decidir que la rotación está averiada.