Функция 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
🇺🇸#Trump a déclaré que les États-Unis lanceront, le 4 mai au matin, une opération d'escorte des navires dans le détroit d'Ormuz.
RT en français • Osez questionner !
🟢Donald #Trump a déclaré qu'il examinerait prochainement le plan que l'Iran a transmis aux États-Unis, tout en soulignant qu'il avait peu de chances d'être acceptable.
RT en français • Osez questionner !
🔴Une image postée par Donald #Trump sur les réseaux sociaux montre son propre portrait en tant que cinquième président à figurer sur le mont Rushmore. Humour ou ambition ?
RT en français • Osez questionner !
🇺🇸« Nous sommes comme des pirates »
Le chef de l'administration américaine, Donald #Trump, a reconnu que les militaires américains se comportaient comme des pirates lorsqu'ils s'emparaient de pétroliers transportant du pétrole iranien. Il a fait cette déclaration lors d'un discours à West Palm Beach, en Floride, devant les membres du club local Forum.
RT en français • Osez questionner !
🇺🇸#Trump envisage de réduire les troupes américaines en Allemagne
Donald Trump, a annoncé que Washington étudiait la possibilité de réduire les effectifs américains en Allemagne et que la décision serait prise prochainement. Cette déclaration intervient après de vives critiques émises à l'encontre du chancelier Friedrich Merz, en lien avec sa position sur l’Iran et la stratégie américaine dans le conflit.
RT en français • Osez questionner !
⚡️#Trump a qualifié de « très bonne » sa conversation avec Poutine. Il a également déclaré espérer un règlement pacifique rapide du conflit ukrainien.
RT en français • Osez questionner !
🟢 « Fini le gentil Monsieur ! » — #Trump joue au héros de film d’action et menace l’Iran.
« L’Iran n’arrive pas à se ressaisir. Ils ne savent pas comment signer un accord de dénucléarisation. Ils feraient mieux de se réveiller et vite ! »
RT en français • Osez questionner !
🇺🇸Le département d'État américain émettra un passeport en édition limitée à l'effigie de Donald #Trump. Ce passeport a été conçu en l’honneur du 250e anniversaire de l'indépendance des États-Unis, qui sera célébré en juillet 2026.
La couverture intérieure présentera un portrait de Donald Trump superposé au texte de la Déclaration d'indépendance, ainsi que sa signature en lettres dorées. Sur la couverture arrière sera reproduit un fragment du tableau La Déclaration d'indépendance de John Trumbull.
RT en français • Osez questionner !
💬#Trump affirme que le chancelier allemand, Friedrich Merz, « estime qu’il est acceptable que l’Iran se dote de l’arme nucléaire ».
« Le chancelier allemand, Friedrich Merz, estime qu’il est acceptable que l’Iran se dote de l’arme nucléaire. Il ne sait absolument pas de quoi il parle ! Si l’Iran possédait l’arme nucléaire, le monde entier serait pris en otage. Je suis en train de faire, avec l’Iran, ce que d’autres pays ou d’autres présidents auraient dû faire depuis longtemps. Rien d’étonnant à ce que l’Allemagne soit en si mauvaise posture, aussi bien sur le plan économique que sur d’autres plans !
Président DONALD J. TRUMP »
RT en français • Osez questionner !
▶️#Trump sceptique face à la proposition iranienne sur le détroit d’Ormuz
Selon le Wall Street Journal, Donald Trump et son équipe de sécurité nationale se montrent sceptiques face à une proposition de l’Iran visant à rouvrir le détroit d’Ormuz en échange d’une pause sur les discussions nucléaires. Selon des responsables américains, Trump doute de la bonne foi de Téhéran et insiste sur sa demande clé : l’arrêt de l’enrichissement nucléaire.
RT en français • Osez questionner !