Roghnú seachfhreastalaí rond-robin i Python le itertools.cycle
Úsáid atrialltóir athráiteach le haghaidh roghnú seachfhreastalaí intuartha ó chomhthiomsú seasta, agus an roghnú scartha ó fheidhmiú an iarratais agus ón tsláinte.
Do chomhthiomsú seasta, is féidir le roghnú rond-robin a bheith deas gearr:
from itertools import cycle
choices = cycle([
"http://proxy-a.example:8080",
"http://proxy-b.example:8080",
"http://proxy-c.example:8080",
])
endpoint = next(choices)
Cuir críochphointí HTTP ó do sheirbhís nó ón liosta seachfhreastalaí HTTP in ionad na sampla-URLanna. Filleann glaonna i ndiaidh a chéile A, B, C agus ansin A arís. Úsáid an luach roghnaithe agus an chéad iarratas eile á chumrú. Chuirfeadh atchruthú an atrialltóra do gach iarratas tús nua leis an seicheamh. Le Requests, cuir an críochphointe roghnaithe isteach san iarratas.
Más fearr leat liosta, bog a chéad mhír go dtí an deireadh. Baineann pool.append(pool.pop()) an mhír dheireanach amach agus cuireann ar ais go díreach í; ní athraíonn an chéad mhír riamh. Is é pool.append(pool.pop(0)) an oibríocht scuaine, cé go n-aistríonn baint ón tosach na míreanna liosta atá fágtha.
Tá tasc measartha de dhíon ag an atrialltóir. Ní dhéanann sé seiceáil ar fáil, ní bhaineann sé iontrálacha teipthe amach agus ní ráthaíonn sé bealach amach poiblí difriúil. Is féidir le roinnt críochphointí a bheith ag roinnt aon seoladh amuigh.
Coinnigh an beartas athiarracht agus nuashonruithe an chomhthiomsaithe lasmuigh den roghnóir bheag seo. Teastaíonn múnla úinéireachta d'aon ghnó i gcód comhthreomhar ó atrialltóir roinnte freisin ionas go bhfanfaidh an críochphointe roghnaithe ceangailte leis an oibríocht a fuair é.