Atsitiktinės atrankos, sumaišyti praėjimai ir pasikartojantys proxy galiniai taškai
Rinkitės tarp nepriklausomų atsitiktinių atrankų, sumaišyto praėjimo ir politikos be tiesioginio pasikartojimo, užuot pasikartojantį galinį tašką laikę sugedusiu rotatoriumi.
Proxy B, vėl proxy B, tada proxy A. Jūsų žurnalas atrodo įtartinai, bet atsitiktinis parinkiklis gali daryti būtent taip.
Rinkimasis iš to paties sąrašo kiekvienos užklausos metu leidžia pasikartojimus. Kai yra du vienodai tikėtini galiniai taškai, kita nepriklausoma atranka turi vieną iš dviejų galimybę sutapti su ankstesne. Trumpa seka su pasikartojimais neįrodo, kad parinkiklis nepaisė sąrašo.
Pasirinkite elgesį, kurio jums tikrai reikia
| Reikalavimas | Atrankos taisyklė |
|---|---|
| Kiekviena atranka nepriklausoma | Kiekvieną kartą rinkitės iš tinkamo sąrašo |
| Panaudokite kiekvieną galinį tašką vieną kartą prieš pradėdami iš naujo | Sumaišykite kopiją, ją išnaudokite, tada pradėkite naują praėjimą |
| Venkite tiesiogiai ankstesnio galinio taško | Prieš rinkdamiesi pašalinkite tą galinį tašką |
Paskutinei politikai aiškiai apdorokite vieno galinio taško atvejį:
candidates = [endpoint for endpoint in eligible if endpoint != previous]
if not candidates:
raise RuntimeError("No different eligible proxy is available")
selected = random.choice(candidates)
Šis fragmentas daro prielaidą, kad random yra importuotas, o galinių taškų sąrašas jau patikrintas. Viešasis telkinys gali pradėti nuo nemokamo proxy sąrašo, kai jo protokolai tinka galutiniam klientui; ši atrankos taisyklė vis tiek kontroliuoja pasikartojimus. Ar laukti, ar pakartotinai naudoti vienintelį galinį tašką, ar sustoti — tai programos politika. Begalinė kilpa, laukianti kitos atsitiktinės reikšmės, negali išspręsti sąrašo, kuriame yra tik vienas skirtingas pasirinkimas.
Lygiagrečiame siųstuve ankstesnio galinio taško parinkimas ir įrašymas taip pat reikalauja suderintos nuosavybės. Priešingu atveju du darbininkai gali abu pašalinti seną reikšmę ir pasirinkti tą pačią kitą reikšmę.
Galiausiai ši taisyklė susijusi su galinio taško tapatybe. Du skirtingi galiniai taškai gali vesti į vieną viešą išėjimą, o vienas teikėjo galinis taškas gali vesti į kelis išėjimus. Užrašykite juos atskirai prieš nuspręsdami, kad rotacija sugedusi.