Pool tal-proxies jista’ jkun fih punti tat-tmiem b’kapaċità ferm differenti. Li tħalli ħamsin operazzjoni fl-applikazzjoni ma jwaqqafx disgħa u erbgħin minnhom milli jagħżlu l-istess proxy.

Jekk il-politika hija “mhux aktar minn erba’ operazzjonijiet fil-progress permezz ta’ kull proxy magħżul”, esprimi dik il-politika direttament. Żomm semaforu għal kull identità tal-proxy, u akkwistah madwar ix-xogħol li jikkonsma l-kapaċità tal-proxy.

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()

Dan l-abbozz jassumi li asyncio ġie importat u li l-URLs tal-proxy ġew validati. Għal talbiet pubbliċi fuq rotta pubblika tal-proxy permessa, il-lista tal-proxies HTTP tipprovdi kandidati għall-URLs tal-proxy ta’ aiohttp. Applikazzjoni vera għandha wkoll tistabbilixxi l-timeout tat-talba tagħha stess u tiddeċiedi kemm data tar-risposta teħtieġ. Li taqra fajl kbir kollu fil-memorja hija deċiżjoni separata dwar ir-riżorsi.

Żomm il-permess għall-parti għalja

Li tħoll is-semaforu malli jaslu l-intestaturi tar-risposta jista’ jfixkel il-limitu maħsub. Korp fi streaming jista’ jkompli juża l-konnessjoni ħafna wara. Żomm il-permess sakemm il-korp jiġi kkunsmat jew ir-risposta tingħalaq skont il-fluss tax-xogħol tal-applikazzjoni.

Il-maniġers tal-kuntest inkapsulati jagħmlu t-tindif viżibbli meta eċċezzjoni jew kanċellazzjoni titlaq mill-operazzjoni. Evita li takkwista manwalment u tħoll biss fil-qiegħ ta’ funzjoni b’suċċess.

Il-limiti tal-konnessjoni jwieġbu mistoqsija oħra

Il-limiti tal-konnettur ta’ aiohttp jillimitaw il-konnessjonijiet skont ir-regoli dokumentati tal-konnettur. Jibqgħu utli maġenb semaforu tal-applikazzjoni. Limitu tal-konnessjoni għal kull destinazzjoni ma jesprimix, bis-sempliċi isem tiegħu, baġit maqsum mid-destinazzjonijiet kollha assenjati lil proxy wieħed.

Iddistingwi wkoll il-konkurrenza mir-rata tat-talbiet. Erba’ talbiet fit-tul u erba’ talbiet qosra ħafna jużaw l-istess kwota ta’ konkurrenza filwaqt li jipproduċu rati ta’ talbiet kull sekonda differenti. Servizz b’politika ta’ rata jista’ jkollu bżonn ta’ tħejjija tar-ritmu jew limitatur tar-rata separat.

Agħżel identifikatur tal-proxy stabbli u mhux sigriet għall-logs u l-metriċi. Jekk żewġ URLs li jġorru kredenzjali jirreferu għall-istess pool tal-kapaċità, iddeċiedi jekk għandhomx jaqsmu baġit wieħed. Bil-maqlub, portijiet jew kontijiet differenti jistgħu jirrappreżentaw limiti separati meta l-operatur jiddokumentahom hekk.

Meta l-throughput jonqos, eżamina fejn ix-xogħol qed jistenna: is-semaforu tiegħek, il-konnettur, it-twaqqif tal-konnessjoni tal-proxy, jew il-qari tar-risposti. Li tgħolli l-limiti kollha f’daqqa jagħmel dik id-distinzjoni aktar diffiċli u jista’ jmexxi l-imfietaħ għal proxy li ma tikkontrollax.

Artikli relatati