asyncio.gather pẹ̀lú return_exceptions=True ń fi àwọn ìyàtọ̀ iṣẹ́ sínú àkójọ àbájáde rẹ̀. Nítorí náà dídúró de ẹgbẹ́ náà láìsí ìyàtọ̀ kò túmọ̀ sí pé gbogbo ìbéèrè proxy ṣàṣeyọrí.

Fi ibi tí ó ń lọ àti proxy tí a yàn sí ẹ̀gbẹ́ àwọn awaitable tí a fi ránṣẹ́, lẹ́yìn náà ṣàyẹ̀wò àbájáde kọ̀ọ̀kan:

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 ní àwọn coroutine ìbéèrè ti ohun èlò náà; routes ní àwọn pẹ́árì (url, proxy) tí ó bá a mu ní ọ̀nà kan náà. Àwọn iṣẹ́ gbígbàlẹ̀ ni ìtọ́jú àbájáde ti ohun èlò náà fúnra rẹ̀. gather ń pa ọ̀nà ìwọlé mọ́ bí ó tilẹ̀ jẹ́ pé ọ̀nà ìparí yàtọ̀.

Pín CancelledError tí ó padà láti iṣẹ́ ọmọ gẹ́gẹ́ bí ìfagilé dípò kí o da proxy rẹ̀ lẹ́bi. Ìfagilé gather ìta ṣì ń tàn kálẹ̀ sí àwọn ọmọ tí kò tíì parí; return_exceptions kò yí ìfagilé yẹn padà sí àṣeyọrí déédéé.

Ìtọ́jú ipò HTTP pẹ̀lú wà nínú iṣẹ́ ìbéèrè náà. aiohttp kì í gbé ìyàtọ̀ jáde fún gbogbo àṣìṣe HTTP ní àìpé, nítorí náà dá ipò náà padà tàbí lo raise_for_status gẹ́gẹ́ bí ìlànà iṣẹ́ náà.

Ní kété tí àwọn àbájáde bá hàn, ohun èlò náà lè ya àwọn ìkùnà ìsopọ̀ sọ́tọ̀ kúrò nínú àwọn ìdáhùn ibi tí ó ń lọ, kí ó sì pinnu iṣẹ́ wo ni ó yẹ fún ìgbìyànjú mìíràn.

Àwọn àpilẹ̀kọ tó jọra