E Proxy-Pool kann Endpunkte mat ganz verschiddener Kapazitéit enthalen. Fofzeg Operatiounen an der ganzer Applikatioun ze erlaben hëlt net dovun of, datt néngavéierzeg dovun deen selwechte Proxy wielen.

Wann d'Politik „héchstens véier Operatiounen am Gaang duerch all ausgewielte Proxy“ ass, dréckt déi Politik direkt aus. Halt e Semaphore fir all Proxy-Identitéit, a kritt en ëm d'Aarbecht, déi d'Kapazitéit vum Proxy verbraucht.

limits = {proxy: asyncio.Semaphore(4) for proxy in proxy_urls}

async def fetch(session, proxy, url):
    async with limits[proxy]:
        async with session.get(url, proxy=proxy) as response:
            return await response.read()

Dëse Skizz setzt viraus, datt asyncio importéiert an d'Proxy-URLen validéiert sinn. Fir ëffentlech Ufroen op engem erlaabten ëffentleche Proxy-Wee liwwert d'HTTP-Proxy-Lëscht Kandidaten fir d'Proxy-URLen vun aiohttp. Eng richteg Applikatioun sollt och hiren eegenen Ufro-Timeout setzen an entscheeden, wéi vill Äntwertdaten se brauch. Eng grouss Datei komplett an de Späicher ze liesen ass eng separat Ressourcenentscheedung.

Halt d'Erlaabnes fir den deieren Deel

De Semaphore freiginn, soubal d'Äntwertkäpp ukommen, kann déi virgesinn Grenz ëmstoussen. En streaming-Kierper kann d'Verbindung nach laang duerno benotzen. Halt d'Erlaabnes, bis de Kierper verbraucht ass oder d'Äntwert no dem Aarbechtsfloss vun der Applikatioun zougemaach gëtt.

Déi verschachtelt Kontextmanager maachen d'Botzen sichtbar, wann eng Ausnam oder eng Annulatioun d'Operatioun verléisst. Vermeit manuell ze kréien an nëmmen um Enn vun enger erfollegräicher Funktioun freizeginn.

Verbindungsgrenze beäntweren eng aner Fro

D'Grenze vum aiohttp-Connector begrenzen d'Verbindungen no den dokumentéierte Regele vum Connector. Si bleiwen nëtzlech nieft engem Applikatiouns-Semaphore. Eng Verbindungsgrenz pro Destinatioun dréckt net, just duerch hiren Numm, e Budget aus, deen all Destinatiounen deelen, déi engem Proxy zougewisen sinn.

Ënnerscheet och Gläichzäitegkeet vu Ufro-Taux. Véier laanglieweg Ufroen a véier ganz kuerz Ufroe benotzen déiselwecht Gläichzäitegkeets-Zoudeelung, produzéieren awer verschidden Ufroe-pro-Sekonn-Tauxen. En Déngscht mat enger Tauxpolitik kann Taktung oder en separate Tauxbegrenzer brauchen.

Wielt eng stabil, net-geheim Proxy-Identifikatioun fir Loggen a Metriken. Wann zwou URLen mat Umeldungsdonnéeën op deen selwechte Kapazitéitspool verweisen, entscheet, ob se een Budget solle deelen. Ëmgedréit kënnen ënnerschiddlech Porten oder Konten getrennte Grenzen duerstellen, wann den Bedreiwer se sou dokumentéiert.

Wann den Duerchfloss fält, iwwerpréift wou d'Aarbecht waart: ären Semaphore, den Connector, d'Opbauen vun der Proxy-Verbindung oder d'Liesen vun den Äntwerten. All Grenzen op eemol ze hiewen mécht dës Ënnerscheedung méi schwéier an kann d'Schlaang an e Proxy réckelen, deen Dir net kontrolléiert.

Ähnlech Artikelen