Round-robin puhverserveri valik Pythonis teegiga itertools.cycle
Kasuta korduvat iteraatorit prognoositavaks puhverserveri valikuks fikseeritud kogumist, hoides valikut päringu täitmisest ja seisundist eraldi.
Fikseeritud kogumi puhul võib round-robin valik olla meeldivalt lühike:
from itertools import cycle
choices = cycle([
"http://proxy-a.example:8080",
"http://proxy-b.example:8080",
"http://proxy-c.example:8080",
])
endpoint = next(choices)
Asenda näidis-URL-id oma teenuse või HTTP puhverserverite loendi HTTP-lõpp-punktidega. Järjestikused kutsed tagastavad A, B, C ja seejärel jälle A. Kasuta valitud väärtust järgmise päringu seadistamisel. Iteraatori uuesti loomine iga päringu jaoks alustaks jada otsast peale. Requestsi puhul edasta valitud lõpp-punkt päringule.
Kui eelistad loendit, vii selle esimene element lõppu. pool.append(pool.pop()) eemaldab viimase elemendi ja paneb selle kohe tagasi; esimene element ei muutu kunagi. Järjekorraoperatsioon on pool.append(pool.pop(0)), kuid eest eemaldamine nihutab ülejäänud loendi elemente.
Iteraatoril on teadlikult tagasihoidlik ülesanne. See ei kontrolli kättesaadavust, ei eemalda ebaõnnestunud kirjeid ega taga teistsugust avalikku väljundit. Mitmed lõpp-punktid võivad jagada üht välist aadressi.
Hoia korduskatsete poliitika ja kogumi uuendused sellest väikesest valijast väljaspool. Jagatud iteraator vajab ka teadlikku omandimudelit samaaegses koodis, et valitud lõpp-punkt jääks seotuks toiminguga, mis selle vastu võttis.