Proxy B, spet proxy B, nato proxy A. Vaš dnevnik je videti sumljiv, a naključni izbirnik sme storiti prav to.

Izbiranje z istega seznama pri vsaki zahtevi dovoljuje ponavljanja. Pri dveh enako verjetnih končnih točkah ima naslednja neodvisna izbira eno od dveh možnosti, da se ujema s prejšnjo. Kratko zaporedje s ponavljanji ni dokaz, da je izbirnik seznam prezrl.

Izberite vedenje, ki ga resnično potrebujete

ZahtevaPravilo izbire
Vsaka izbira je neodvisnaVsakič izberite s primernega seznama
Vsako končno točko uporabite enkrat, preden začnete znovaPremešajte kopijo, jo porabite in nato začnite nov prehod
Izogibajte se neposredno prejšnji končni točkiPred izbiro izključite to končno točko

Za zadnjo politiko izrecno obravnavajte primer z eno končno točko:

candidates = [endpoint for endpoint in eligible if endpoint != previous]
if not candidates:
    raise RuntimeError("No different eligible proxy is available")
selected = random.choice(candidates)

Ta odlomek predpostavlja, da je random uvožen in da je seznam končnih točk že preverjen. Javni nabor lahko začne z brezplačnim seznamom proxyjev, ko se njegovi protokoli ujemajo s končnim odjemalcem; to pravilo izbire še vedno nadzoruje ponavljanja. Ali čakati, znova uporabiti edino končno točko ali se ustaviti, je politika aplikacije. Neskončna zanka, ki čaka na drugo naključno vrednost, ne more rešiti seznama, ki vsebuje samo eno različno izbiro.

V sočasnem razpošiljatelju izbira in beleženje prejšnje končne točke zahtevata tudi usklajeno lastništvo. Sicer lahko dva delavca oba izključita staro vrednost in izbereta isto naslednjo vrednost.

Nazadnje, to pravilo se nanaša na identiteto končne točke. Dve različni končni točki lahko vodita do enega javnega izhoda, ena končna točka ponudnika pa lahko vodi do več izhodov. Zapišite jih ločeno, preden se odločite, da je rotacija pokvarjena.

Sorodni članki