Tilfeldige val, blanda gjennomløp og gjentekne proxy-endepunkt
Vel mellom uavhengige tilfeldige val, eit blanda gjennomløp og ein policy utan umiddelbar gjentaking, i staden for å sjå på eit gjenteke endepunkt som ein øydelagd rotator.
Proxy B, proxy B igjen, deretter proxy A. Loggen din ser mistenkjeleg ut, men ein tilfeldig veljar har lov til å gjere nettopp det.
Å velje frå same liste ved kvar førespurnad tillèt gjentakingar. Med to like sannsynlege endepunkt har neste uavhengige val éin av to sjanse til å matche det førre. Ein kort serie med gjentakingar er ikkje prov på at veljaren ignorerte lista.
Vel åtferda du faktisk treng
| Krav | Valregel |
|---|---|
| Kvart val er uavhengig | Vel frå den kvalifiserte lista kvar gong |
| Bruk kvart endepunkt éin gong før du byrjar på nytt | Bland ein kopi, bruk han opp, og start deretter eit nytt gjennomløp |
| Unngå det umiddelbart førre endepunktet | Utelukk det endepunktet før du vel |
For den siste policyen, handsam tilfellet med eitt endepunkt eksplisitt:
candidates = [endpoint for endpoint in eligible if endpoint != previous]
if not candidates:
raise RuntimeError("No different eligible proxy is available")
selected = random.choice(candidates)
Dette utdraget føreset at random er importert og at lista over endepunkt allereie er validert. Ein offentleg pool kan byrje med den gratis proxy-lista når protokollane passar til den endelege klienten; denne valregelen styrer framleis gjentakingar. Om ein skal vente, bruke det einaste endepunktet på nytt eller stoppe, er ein applikasjonspolicy. Ei endelaus løkke som ventar på ein annan tilfeldig verdi kan ikkje løyse ei liste som berre inneheld eitt distinkt val.
I ein samtidig dispatcher krev val og registrering av det førre endepunktet òg koordinert eigarskap. Elles kan to arbeidarar båe utelukke den gamle verdien og velje den same neste verdien.
Til slutt gjeld denne regelen identiteten til endepunktet. To ulike endepunkt kan føre til éin offentleg utgang, og eitt leverandørendepunkt kan føre til fleire utgangar. Registrer dei separat før du avgjer at rotasjonen er øydelagd.