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.

Skyldar greinar