Zaɓin wakili na round-robin a Python da itertools.cycle
Yi amfani da mai maimaitawa don zaɓin wakili mai iya tsammani daga tafki mai tsayi, tare da raba zaɓi daga aiwatar da buƙata da lafiya.
Ga tafki mai tsayi, zaɓin round-robin na iya zama ɗan gajere cikin daɗi:
from itertools import cycle
choices = cycle([
"http://proxy-a.example:8080",
"http://proxy-b.example:8080",
"http://proxy-c.example:8080",
])
endpoint = next(choices)
Maye gurbin URL ɗin misali da wuraren ƙarshe na HTTP daga sabis ɗinka ko daga jerin wakilan HTTP. Kira-kira na jere suna mayar da A, B, C sannan A kuma. Yi amfani da ƙimar da aka zaɓa sa'ad da kake saita buƙata ta gaba. Ƙirƙirar mai maimaitawa kowane buƙata zai sake farawa jerin. Don Requests, kai wurin ƙarshen da aka zaɓa cikin buƙatar.
Idan ka fi son jeri, matsar da abu na farko zuwa ƙarshe. pool.append(pool.pop()) yana cire abu na ƙarshe kuma ya mayar da shi kai tsaye; abu na farko ba ya canzawa. Aikin layi shine pool.append(pool.pop(0)), ko da yake cirewa daga gaba yana motsa sauran abubuwan jerin.
Mai maimaitawa yana da aiki mai sauƙi da gangan. Ba ya duba samuwa, ba ya cire shigarwar da ta kasa kuma ba ya tabbatar da wata hanyar fita ta jama'a daban. Wuraren ƙarshe da yawa na iya raba adireshin waje ɗaya.
Ka riƙe manufar sake gwadawa da sabunta tafki a wajen wannan ƙaramin mai zaɓe. Mai maimaitawa da aka raba kuma yana buƙatar tsarin mallaka na ganganci a cikin lambar lokaci ɗaya domin wurin ƙarshen da aka zaɓa ya kasance a haɗe da aikin da ya karɓe shi.