Прокси 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 импортталған және соңғы нүктелер тізімі әлдеқашан тексерілген деп есептейді. Жалпыға ортақ пул тегін прокси тізімінен бастала алады, егер оның хаттамалары түпкі клиентке сәйкес келсе; бұл таңдау ережесі әлі де қайталауларды басқарады. Күту, жалғыз соңғы нүктені қайта пайдалану немесе тоқтату — қолданбаның саясаты. Басқа кездейсоқ мәнді күтетін шексіз цикл тек бір ғана бөлек таңдауы бар тізімді шеше алмайды.

Қатар жұмыс істейтін диспетчерде алдыңғы соңғы нүктені таңдау мен тіркеу де үйлестірілген иелікті қажет етеді. Әйтпесе екі жұмысшы да ескі мәнді алып тастап, бірдей келесі мәнді таңдауы мүмкін.

Соңында, бұл ереже соңғы нүктенің сәйкестігіне қатысты. Екі түрлі соңғы нүкте бір жалпыға ортақ шығысқа әкелуі мүмкін, ал бір провайдердің соңғы нүктесі бірнеше шығысқа әкелуі мүмкін. Айналым бұзылды деп шешпес бұрын оларды бөлек тіркеңіз.

Қатысты мақалалар