Proxy B, yenidən proxy B, sonra proxy A. Jurnalınız şübhəli görünür, amma təsadüfi seçici məhz bunu edə bilər.

Hər sorğuda eyni siyahıdan seçmək təkrarlara icazə verir. İki bərabər ehtimallı son nöqtə olduqda, növbəti müstəqil seçimin əvvəlki ilə üst-üstə düşmək şansı ikidə birdir. Təkrarlar olan qısa ardıcıllıq seçicinin siyahıya məhəl qoymadığına sübut deyil.

Həqiqətən ehtiyacınız olan davranışı seçin

TələbSeçim qaydası
Hər seçim müstəqildirHər dəfə uyğun siyahıdan seçin
Yenidən başlamazdan əvvəl hər son nöqtəni bir dəfə istifadə edinBir kopyanı qarışdırın, onu istifadə edin, sonra yeni keçidə başlayın
Dərhal əvvəlki son nöqtədən çəkininSeçimdən əvvəl həmin son nöqtəni istisna edin

Son siyasət üçün tək son nöqtə halını açıq şəkildə idarə edin:

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

Bu fraqment random modulunun idxal olunduğunu və son nöqtələr siyahısının artıq yoxlanıldığını fərz edir. İctimai hovuz, protokolları son müştəriyə uyğun olduqda pulsuz proxy siyahısı ilə başlaya bilər; bu seçim qaydası yenə də təkrarları idarə edir. Gözləmək, yeganə son nöqtəni təkrar istifadə etmək və ya dayandırmaq tətbiq siyasətidir. Fərqli təsadüfi dəyər gözləyən sonsuz dövrə yalnız bir fərqli seçim olan siyahını həll edə bilməz.

Eyni vaxtda işləyən dispetçerdə əvvəlki son nöqtənin seçilməsi və qeydə alınması da koordinasiyalı sahiblik tələb edir. Əks halda iki işçi köhnə dəyəri istisna edib eyni növbəti dəyəri seçə bilər.

Nəhayət, bu qayda son nöqtənin kimliyinə aiddir. İki fərqli son nöqtə bir ictimai çıxışa apara bilər, bir provayder son nöqtəsi isə bir neçə çıxışa apara bilər. Rotasiyanın pozulduğuna qərar verməzdən əvvəl bunları ayrıca qeyd edin.

Əlaqəli məqalələr