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

KravValregel
Kvart val er uavhengigVel frå den kvalifiserte lista kvar gong
Bruk kvart endepunkt éin gong før du byrjar på nyttBland ein kopi, bruk han opp, og start deretter eit nytt gjennomløp
Unngå det umiddelbart førre endepunktetUtelukk 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.

Relaterte artiklar