Функция asyncio.wait() это еще один способ вызвать множество асинхронных задач.
Она работает в нескольких режимах.
1. Самый простой - ждем завершения всех задач
async def main():
tasks = [asyncio.create_task(do_it(i)) for i in range(10)]
done, pending = await asyncio.wait(
tasks,
return_when=asyncio.ALL_COMPLETED
)
for task in done:
try:
print(task.result())
except Exception as e:
print(e)
Очень похоже на gather, но работает не так.
▫️возвращает не результаты, а два сета с объектами Task у которых можно забрать результат через task.result() если они в списке done
▫️не гарантирует порядок результатов так как оба объекта это set
▫️не выбрасывает исключение когда оно появляется, а сохраняет его в Task. Исключение появится когда попробуете забрать резултьтат.
2. Ждем завершения первой задачи, даже если там ошибка.
async def main():
tasks = [asyncio.create_task(do_it(i)) for i in range(3)]
done, pending = await asyncio.wait(
tasks,
return_when=asyncio.FIRST_COMPLETED
)
# в done может быть несколько задач!
for task in done:
try:
print(task.result())
except Exception as e:
print(f"Fail: {e}")
# Оставшиеся задачи в pending, как правило, нужно отменить, иначе они будут продолжать работать
for task in pending:
task.cancel()
В сете done будут таски которые успели завершится, причем как успешно так и нет.
3. До первой ошибки.
Тоже самое, но с аргументом FIRST_EXCEPTION
done, pending = await asyncio.wait(
tasks,
return_when=asyncio.FIRST_EXCEPTION
)
Функция завершается как только первая задача упадет с ошибкой.
Учтите, что в любом случае done вы можете обранужить несколько задач, как с ошибками так и успешные.
↗️ Полный листинг примеров здесь
#async
OLTRE IL DOGMA: COSA CI INSEGNA DAVVERO IL RAPPORTO DEL PCC SULLA CRISI GLOBALE
il Rapporto annuale 2022/2023*dell’Accademia del Marxism (Cina) di Bruno Steri per Marx21.
Un testo che sfata molti stereotipi.
1. Il marxismo non è una litania.
Contro la vulgata che dipinge i comunisti cinesi come "dogmatici", il Rapporto parte da una lezione di Engels: “La concezione di Marx non è una dottrina, ma un metodo”. Nessuna "frase scarlatta" astratta, ma l’analisi concreta di una realtà complessa. Con oltre 100 milioni di iscritti al PCC e un PIL da 121 trilioni di yuan, la "quantità" diventa qualità: la Cina non esporta modelli, propone percorsi.
2. Il parassitismo finanziario USA.
Quando la Fed alza i tassi, non cura l’inflazione: esporta crisi. Il dollaro forte strangola il Sud del mondo, deprezza euro, yen e rupie, e spinge il 60% dei Paesi a basso reddito nel baratro del debito. Lenin parlerebbe di "Stato usuraio". Oggi 80 banche centrali si rivolgono allo yuan per sopravvivere. La dedollarizzazione non è un vezzo: è una trincea.
3. Europa: disuguaglianza e rassegnazione.
I dati Ocse parlano chiaro: in Italia il 10% più ricco possiede il 47% della ricchezza, mentre la metà più povera precipita al 10%. Scioperi ovunque – portuali, trasporti, sanità – eppure, nota il Rapporto, nessuna critica organica al capitalismo. Perché? Perché i partiti comunisti europei, dopo il crollo sovietico, hanno "diluito il colore dell’avanguardia". Le lotte restano economiche, non diventano politiche.
4. Una bussola per ripartire.
Il Rapporto non è un semplice resoconto: è un atto d’accusa contro l’accerchiamento imperialista (USA, Giappone, UE) e un richiamo alla responsabilità teorica. Se le proteste restano "senza guida", è il marxismo stesso a uscirne impoverito.
Leggere queste pagine significa riarmare lo sguardo. Perché senza analisi della realtà, non c’è trasformazione.
✊#Cina#Marxismo#ImperialismoFinanziario#Dedollarizzazione#LottaDiClasse#RapportoPCC
https://www.marx21.it/associazione/presentazione-del-rapporto-annuale-2022-2023-del-pcc/