Прокси B, поново прокси B, затим прокси A. Ваш дневник изгледа сумњиво, али случајни бирач сме то да ради.

Бирање са истог списка при сваком захтеву дозвољава понављања. Са две једнако вероватне крајње тачке, следећи независни избор има шансу један према два да се поклопи са претходним. Кратак низ са понављањима није доказ да је бирач занемарио списак.

Изаберите понашање које вам је заиста потребно

ЗахтевПравило избора
Сваки избор је независанСваки пут бирајте са списка подобних
Искористите сваку крајњу тачку једном пре поновног почеткаПромешајте копију, потрошите је, затим започните нови пролаз
Избегавајте непосредно претходну крајњу тачкуИскључите ту крајњу тачку пре избора

За последњу политику изричито обрадите случај са једном крајњом тачком:

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

Овај исечак претпоставља да је random увезен и да је списак крајњих тачака већ проверен. Јавни скуп може почети са бесплатним списком проксија када се његови протоколи уклапају у коначног клијента; ово правило избора и даље контролише понављања. Да ли чекати, поново употребити једину крајњу тачку или стати, ствар је политике апликације. Бесконачна петља која чека другу случајну вредност не може решити списак који садржи само један различит избор.

У паралелном диспечеру, избор и бележење претходне крајње тачке такође захтевају усклађено власништво. Иначе два радника могу оба искључити стару вредност и изабрати исту следећу вредност.

Најзад, ово правило се тиче идентитета крајње тачке. Две различите крајње тачке могу водити до једног јавног излаза, а једна крајња тачка добављача може водити до неколико излаза. Забележите то одвојено пре него што закључите да је ротација покварена.

Повезани чланци