Ukusingatha izicelo ze-proxy ezihlulekile nge-asyncio.gather
Hlola iziphambeko ezibuyiswa yi-asyncio.gather futhi ugcine umphumela ngamunye uhlangene ne-proxy ekhethiwe.
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.