Por fiksa provizo, ĉirkaŭira elekto povas esti agrable mallonga:

from itertools import cycle

choices = cycle([
    "http://proxy-a.example:8080",
    "http://proxy-b.example:8080",
    "http://proxy-c.example:8080",
])

endpoint = next(choices)

Anstataŭigu la ekzemplajn URL-ojn per HTTP-finpunktoj el via servo aŭ el la HTTP-proksa listo. Sinsekvaj vokoj redonas A, B, C, kaj poste denove A. Uzu la elektitan valoron kiam vi agordas la sekvan peton. Krei la iteratoron denove por ĉiu peto restartigus la sinsekvon. Por Requests, transdonu la elektitan finpunkton al la peto.

Se vi preferas liston, movu ĝian unuan eron al la fino. pool.append(pool.pop()) forigas la lastan eron kaj tuj remetas ĝin; la unua ero neniam ŝanĝiĝas. La vicoperacio estas pool.append(pool.pop(0)), sed forigo de la komenco ŝovas la ceterajn listajn erojn.

La iteratoro havas intence modestan taskon. Ĝi ne kontrolas haveblecon, ne forigas malsukcesajn erojn kaj ne garantias alian publikan eliron. Pluraj finpunktoj povas kunhavigi unu eksteran adreson.

Tenu la reprovan politikon kaj provizajn ĝisdatigojn ekster ĉi tiu eta selektilo. Kunhavigita iteratoro ankaŭ bezonas intencan posedmodelon en samtempa kodo, por ke la elektita finpunkto restu ligita al la operacio, kiu ricevis ĝin.

Rilataj artikoloj