Véletlen választások, kevert körök és ismétlődő proxy végpontok
Válasszon a független véletlen választások, egy kevert kör és az azonnali ismétlést elkerülő szabály között, ahelyett hogy az ismétlődő végpontot hibás rotátornak tekintené.
Proxy B, megint proxy B, majd proxy A. A naplója gyanúsnak tűnik, de egy véletlen választó pontosan ezt teheti.
Ha minden kérésnél ugyanabból a listából választ, az ismétléseket enged meg. Két egyformán valószínű végpont esetén a következő független választásnak egy a ketteshez esélye van arra, hogy egyezzen az előzővel. Az ismétléseket tartalmazó rövid sorozat nem bizonyítja, hogy a választó figyelmen kívül hagyta a listát.
Válassza azt a viselkedést, amelyre valóban szüksége van
| Követelmény | Választási szabály |
|---|---|
| Minden választás független | Minden alkalommal a jogosult listából válasszon |
| Minden végpontot egyszer használjon, mielőtt újrakezdi | Keverjen meg egy másolatot, használja el, majd kezdjen új kört |
| Kerülje a közvetlenül előző végpontot | Zárja ki ezt a végpontot a választás előtt |
Az utolsó szabály esetében kezelje kifejezetten az egyetlen végpont esetét:
candidates = [endpoint for endpoint in eligible if endpoint != previous]
if not candidates:
raise RuntimeError("No different eligible proxy is available")
selected = random.choice(candidates)
Ez a részlet feltételezi, hogy a random importálva van, és a végpontok listája már ellenőrzött. Egy nyilvános készlet a ingyenes proxy listával kezdhet, amikor protokolljai megfelelnek a végső kliensnek; ez a választási szabály továbbra is szabályozza az ismétléseket. Az, hogy várjon-e, újrahasználja-e az egyetlen végpontot, vagy leálljon, az alkalmazás szabálya. A végtelen ciklus, amely egy másik véletlen értékre vár, nem tud megoldani egy listát, amely csak egyetlen különböző választást tartalmaz.
Egy párhuzamos diszpécserben az előző végpont kiválasztása és rögzítése is összehangolt tulajdonjogot igényel. Ellenkező esetben két munkás is kizárhatja a régi értéket, és ugyanazt a következő értéket választhatja.
Végül ez a szabály a végpont azonosságára vonatkozik. Két különböző végpont vezethet egyetlen nyilvános kijárathoz, és egy szolgáltatói végpont több kijárathoz is vezethet. Ezeket külön rögzítse, mielőtt eldönti, hogy a rotáció hibás.