At handfara miseydnaðar proxy-umbønir við asyncio.gather
Kanna undantøkini, sum asyncio.gather letur aftur, og hald hvørjum úrsliti knýtt at tí valda proxy.
asyncio.gather við return_exceptions=True setur undantøk verkefnanna í úrslitalistan. At bíða eftir bólkinum uttan undantak merkir tí ikki, at hvør proxy-umbøn eydnaðist.
Hald málinum og tí valda proxy við síðuna av sendu awaitable-objektunum, og kanna síðani hvørt úrslit:
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 hevur umbønarkorutinurnar hjá applikatiónini; routes hevur samsvarandi (url, proxy)-pør í sama raðfylgju. Skrásetingarfunktiónirnar eru applikatiónini egna úrslitaavgerð. gather varðveitir inntaksraðfylgjuna, eisini tá ið fullføringarraðfylgjan er øðrvísi.
Flokka eitt afturlatið CancelledError hjá einum barnaverkefni sum avlýsing heldur enn at geva proxy-num skyld. Avlýsing av tí ytra gather berst framvegis til óliðug børn; return_exceptions ger ikki ta avlýsingina til vanligan góðkunn.
Handfaring av HTTP-støðu hoyrir eisini inni í umbónaravgerðini. aiohttp reisir ikki undantak fyri hvørja HTTP-villu sum standard, so lat støðuna aftur ella brúka raise_for_status eftir stevnu verkefnisins.
Tá ið úrslitini eru sjónlig, kann applikatiónin skilja sambandsvillur frá svarum málsins og avgreiða, hvat arbeiði eigur eina roynd afturat.