Uchaguzi wa proksi wa round-robin katika Python kwa itertools.cycle
Tumia kirejelezi kinachojirudia kwa uchaguzi wa proksi unaotabirika kutoka dimbwi thabiti, huku ukikitenganisha uchaguzi na utekelezaji wa ombi na afya.
Kwa dimbwi thabiti, uchaguzi wa round-robin unaweza kuwa mfupi kwa kupendeza:
from itertools import cycle
choices = cycle([
"http://proxy-a.example:8080",
"http://proxy-b.example:8080",
"http://proxy-c.example:8080",
])
endpoint = next(choices)
Badilisha URL za mfano na vituo vya mwisho vya HTTP kutoka huduma yako au kutoka orodha ya proksi za HTTP. Miito mfululizo hurudisha A, B, C kisha A tena. Tumia thamani iliyochaguliwa unapoweka ombi linalofuata. Kuunda kirejelezi upya kwa kila ombi kutaanzisha mfuatano upya. Kwa Requests, pitisha kituo cha mwisho kilichochaguliwa kwenye ombi.
Ikiwa unapendelea orodha, hamishia kipengele chake cha kwanza mwishoni. pool.append(pool.pop()) huondoa kipengele cha mwisho na kukirudisha papo hapo; kipengele cha kwanza hakibadiliki kamwe. Operesheni ya foleni ni pool.append(pool.pop(0)), ingawa kuondoa mbele huhamisha vipengele vingine vya orodha.
Kirejelezi kina kazi ya kujitolea kwa kiasi. Hakiangalii upatikanaji, hakiondoi maingizo yaliyoshindikana na hakihakikishi njia tofauti ya kutoka kwa umma. Vituo vingi vya mwisho vinaweza kushiriki anwani moja ya nje.
Weka sera ya kujaribu tena na masasisho ya dimbwi nje ya kichaguzi hiki kidogo. Kirejelezi kinachoshirikiwa pia kinahitaji modeli ya umiliki ya kukusudia katika msimbo unaotumika kwa wakati mmoja ili kituo cha mwisho kilichochaguliwa kibaki kimefungamanishwa na operesheni iliyokipokea.