Yíyan aṣojú round-robin nínú Python pẹ̀lú itertools.cycle
Lo olùtẹ̀síwájú tí ń tún ṣe fún yíyan aṣojú tí ó ṣeé sọ tẹ́lẹ̀ láti inú àkójọpọ̀ tí ó dúró ṣinṣin, ní yíya yíyan sọ́tọ̀ kúrò nínú ìṣe ìbéèrè àti ìlera.
Fún àkójọpọ̀ tí ó dúró ṣinṣin, yíyan round-robin lè jẹ́ kúkúrú pẹ̀lú ìtẹ́lọ́rùn:
from itertools import cycle
choices = cycle([
"http://proxy-a.example:8080",
"http://proxy-b.example:8080",
"http://proxy-c.example:8080",
])
endpoint = next(choices)
Rọ́pò àwọn URL àpẹẹrẹ pẹ̀lú àwọn ìparí HTTP láti inú iṣẹ́ rẹ tàbí láti inú àkójọ aṣojú HTTP. Àwọn ìpè tẹ̀lentẹ̀le ń dá A, B, C padà, lẹ́yìn náà A lẹ́ẹ̀kan sí i. Lo iye tí a yàn nígbà tí o bá ń ṣètò ìbéèrè tó kàn. Ṣíṣe olùtẹ̀síwájú tuntun fún gbogbo ìbéèrè yóò tún ìtẹ̀lentẹ̀le bẹ̀rẹ̀. Fún Requests, fi ìparí tí a yàn kọjá sínú ìbéèrè.
Tí o bá fẹ́ àkójọ, gbé ohun àkọ́kọ́ rẹ̀ lọ sí ìparí. pool.append(pool.pop()) yọ ohun tó gbẹ̀yìn kúrò, ó sì tún un gbé padà lẹ́sẹ̀kẹsẹ̀; ohun àkọ́kọ́ kò yí padà láé. Ìṣe ìlà jẹ́ pool.append(pool.pop(0)), bó tilẹ̀ jẹ́ pé yíyọ kúrò ní iwájú ń gbé àwọn èròjà àkójọ tó kù lọ.
Olùtẹ̀síwájú ní iṣẹ́ oníwọ̀ntúnwọ̀nsì pẹ̀lú ìmọ̀. Kò ṣàyẹ̀wò wíwà, kò yọ àwọn àkọsílẹ̀ tí ó kùnà kúrò, kò sì ṣèlérí ọ̀nà ìjáde gbogbogbò mìíràn. Ọ̀pọ̀ ìparí lè pín àdírẹ́sì ìta kan.
Pa ìlànà àtúnṣe àti àwọn ìmúdójúìwọ̀n àkójọpọ̀ mọ́ ní ìta olùyàn kékeré yìí. Olùtẹ̀síwájú tí a pín dààró tún nílò àwòrán níní onímọ̀ nínú kóòdù àkókò kan kí ìparí tí a yàn lè wà ní ìsopọ̀ pẹ̀lú ìṣiṣẹ́ tí ó gbà á.