Proxy B, proxy B igen, derefter proxy A. Din log ser mistænkelig ud, men en tilfældig vælger må gøre præcis det.

Valg fra samme liste ved hver anmodning tillader gentagelser. Med to lige sandsynlige endepunkter har det næste uafhængige valg en chance på en ud af to for at matche det foregående. En kort serie med gentagelser er ikke bevis for, at vælgeren ignorerede listen.

Vælg den adfærd, du faktisk har brug for

KravValgregel
Hvert valg er uafhængigtVælg fra den kvalificerede liste hver gang
Brug hvert endepunkt én gang, før du starter forfraBland en kopi, forbrug den, og begynd derefter et nyt gennemløb
Undgå det umiddelbart foregående endepunktUdeluk dette endepunkt før valget

For den sidste politik skal du håndtere tilfældet med ét endepunkt eksplicit:

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 uddrag forudsætter, at random er importeret, og at listen over endepunkter allerede er valideret. En offentlig pulje kan begynde med den gratis proxy-liste, når dens protokoller passer til den endelige klient; denne valgregel styrer stadig gentagelser. Om man skal vente, genbruge det eneste endepunkt eller stoppe, er en anvendelsespolitik. En endeløs løkke, der venter på en anden tilfældig værdi, kan ikke løse en liste, der kun indeholder ét forskelligt valg.

I en samtidig dispatcher kræver valg og registrering af det foregående endepunkt også koordineret ejerskab. Ellers kan to arbejdere begge udelukke den gamle værdi og vælge den samme næste værdi.

Endelig handler denne regel om endepunktets identitet. To forskellige endepunkter kan føre til én offentlig udgang, og ét udbyderendepunkt kan føre til flere udgange. Registrer dem separat, før du beslutter, at rotationen er brudt.

Relaterede artikler