Три способа выполнить множество задач с asyncio
Функция для примера:
async def do_it(n):
await asyncio.sleep(random.uniform(0.5, 1))
return n
1. Последовательный вызов
async def main():
for i in range(100):
result = await do_it(i)
Такой вызов имеет смысл только тогда, когда результат одной задачи требуется для вызова следующей.
Если они независимы, то это антипаттерн, так как аналогичен простому синхронному вызову по очереди.
2. Упорядоченный результат
async def main():
tasks = [do_it(i) for i in range(100)]
results = await asyncio.gather(*tasks)
Выполняет корутины конкурентно и возвращает результат в виде списка.
Полезен когда требуется получить результаты в том же порядке в котором задачи отправлены.
3. Результат по мере готовности
tasks = [asyncio.create_task(do_it(i)) for i in range(100)]
for cor in asyncio.as_completed(tasks):
result = await cor
Так же выполняет корутины конкурентно, но не гарантирует порядок. Результат возвращается по мере готовности, каждый отдельно.
Полезен когда нужно обработать любой ответ как можно скорее.
#async
🇮🇱🇮🇷 Face aux tirs de missiles quasi quotidiens depuis le Liban et l'Iran, de nombreux Israéliens dorment dans des abris souterrains depuis un mois. Ces espaces sont aménagés avec des matelas, tentes, tables et chaises pour plus de confort.
#israël#abris#tirs
🇬🇷 Un Grec de 89 ans a blessé cinq personnes avec un fusil de chasse au Fonds national pour la sécurité sociale (EFKA) et à la Cour d’appel d’Athènes, a indiqué la chaîne ERT-news.
#grèce#tirs#blessés
🇮🇷🇮🇱 Une équipe de tournage de la radio et télévision publique iranienne a essuyé des tirs dans le secteur de la place Hor à Téhéran.
Les journalistes, évacués à temps, n'ont pas été blessés. Un correspondant de la télévision publique a souligné que l’attaque américano-israélienne avait visé un quartier résidentiel densément peuplé de la capitale.
#iran#israél#journalistes#tirs
🇺🇸 Le président américain Donald Trump a publié une photo du suspect de la fusillade survenue lors du dîner organisé par l'Association des correspondants de la Maison-Blanche, auquel il assistait.
Le dirigeant américain a mis en doute le fait que cet incident ait un quelconque lien avec la guerre contre l'Iran.
#étatsunis#président#tirs#association#dîner
🇺🇸 Des tirs se sont produits samedi soir à Washington au dîner organisé par l'Association des correspondants de la Maison-Blanche, auquel assistait le président Donald Trump.
Comme cela a été rapporté par le Secret Service, aucun membre de l'administration américaine n'a été blessé; une personne a été interpellée.
#étatsunis#président#tirs#association#dîner