Ka shaqaynta codsiyada proxy-ga fashilmay iyada oo la isticmaalayo asyncio.gather
Baadh qaladaadka ay asyncio.gather soo celiso oo natiijada kasta ku hay xiriir la leh proxy-ga la doortay.
asyncio.gather oo leh return_exceptions=True waxay qaladaadka hawlaha gelisaa liiska natiijadeeda. Sidaas darteed sugitaanka kooxda iyada oo aan qalad jirin macneheedu maaha in codsi kasta oo proxy ah uu guulaystay.
Hay goobta iyo proxy-ga la doortay agtooda awaitable-yada la soo gudbiyay, ka dibna baadh natiijada kasta:
outcomes = await asyncio.gather(*jobs, return_exceptions=True)
for (url, proxy), outcome in zip(routes, outcomes):
if isinstance(outcome, BaseException):
record_failure(url, proxy, outcome)
else:
record_success(url, proxy, outcome)
jobs waxa uu ka kooban yahay coroutines-ka codsiyada ee barnaamijka; routes waxa uu ka kooban yahay lammaanaha (url, proxy) ee u dhigma isla nidaamkaas. Shaqooyinka duubista waa maaraynta natiijada barnaamijka laftiisa. gather waxa uu ilaaliyaa nidaamka gelitaanka xitaa marka nidaamka dhamaystirka uu ka duwan yahay.
U kala saar CancelledError ee ka soo noqda hawl ilmo ah inuu yahay joojin halkii aad proxy-ga eedayn lahayd. Joojinta gather-ka dibadda waxa ay weli ku faaftaa carruurta aan dhamayn; return_exceptions ma beddelo joojintaas guul caadi ah.
Maaraynta heerka HTTP waxa ay sidoo kale ku taal gudaha hawsha codsiga. aiohttp si caadi ah uma kiciyo qalad kasta oo HTTP ah, sidaas darteed soo celi heerka ama codso raise_for_status sida siyaasadda hawsha.
Marka natiijooyinka la arko, barnaamijku waxa uu kala saari karaa ciladaha xidhiidhka iyo jawaabaha goobta oo waxa uu go'aansan karaa shaqa keenista kale u qalanta.