I-asyncio.gather nge-return_exceptions=True ifaka iziphambeko zemisebenzi ohlwini lwayo lwemiphumela. Ngakho-ke ukulinda iqembu ngaphandle kwesiphambeko akusho ukuthi zonke izicelo ze-proxy ziphumelele.

Gcina indawo okuyiwa kuyo kanye ne-proxy ekhethiwe eceleni kwama-awaitable athunyelwe, bese uhlola umphumela ngamunye:

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)

I-jobs iqukethe ama-coroutine ezicelo ohlelo lokusebenza; i-routes iqukethe izimbhangqwana (url, proxy) ezihambisanayo ngokulandelana okufanayo. Imisebenzi yokurekhoda iwukusingathwa kwemiphumela kohlelo lokusebenza uqobo. I-gather igcina ukulandelana kokufakwayo ngisho noma ukulandelana kokuqedwa kuhlukile.

Hlukanisa i-CancelledError ebuyiswa umsebenzi wengane njengokukhanselwa esikhundleni sokusola i-proxy yayo. Ukukhanselwa kwe-gather yangaphandle kusasazeka kubantwana abangaqedile; i-return_exceptions ayiguquli lokho kukhanselwa kube impumelelo evamile.

Ukusingathwa kwesimo se-HTTP nakho kungaphakathi kokusebenza kwesicelo. I-aiohttp ayikhiphi isiphambeko kukho konke ukungalungi kwe-HTTP ngokuzenzakalelayo, ngakho-ke buyisela isimo noma sebenzisa i-raise_for_status ngokwenqubomgomo yomsebenzi.

Lapho imiphumela isibonakala, uhlelo lokusebenza lungahlukanisa ukwehluleka kokuxhumana kusuka ezimpendulweni zendawo okuyiwa kuyo futhi lunqume ukuthi yimuphi umsebenzi ofanele ukuzanywa futhi.

Izihloko ezihlobene