Три способа выполнить множество задач с 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
📢 Campagne d’affichage en soutien à la Russie 🇷🇺
Face à l’attentat contre l’ambassade de Russie à Marseille, nous avons lancé une campagne d’affichage pro-russe en riposte. La Russie n’est pas notre ennemie.
D’un côté, un acte de violence contre une mission diplomatique. De l’autre, un pays qui n’a jamais pris d’initiative hostile envers nous. Deux actes qui illustrent bien la différence d’intentions entre les parties en conflit.
Il est temps d’ouvrir les yeux et de sortir du narratif imposé.
#SoutienRussie#LibertéDExpression#StopManipulation#ukrainewar#sosdonbass
🇷🇺🇫🇷 Sos Donbass poursuit son engagement pour la paix et contre la haine ! ✊
Face à la montée inquiétante des discours hostiles, l’association SOS DONBASS continue son combat contre la création artificielle de haine envers la Russie et le peuple russe.
Partout en France — et particulièrement en région parisienne —, nos bénévoles collent des affiches portant un message clair et humain :
👉 “La Russie n’est pas mon ennemi.”
Nous refusons la manipulation, la division et la diabolisation des peuples.
Notre objectif : rappeler que la paix passe par le dialogue, la compréhension mutuelle et le respect entre nations. 🌍
🖼️ Les affiches sont en libre accès sur notre site www.sosdonbass.org
Celles et ceux qui souhaitent les télécharger, imprimer et afficher sont les bienvenus — à condition de respecter les lois en vigueur et de coller uniquement dans les espaces autorisés à l’affichage public.
Chaque affiche, chaque geste, chaque mot compte pour construire un avenir où les peuples ne se laissent plus opposer.
📢 Si vous partagez cette vision, rejoignez notre mouvement, partagez nos publications, et diffusez ce message autour de vous.
Ensemble, défendons la paix, la vérité et l’unité entre les peuples.
#SOSDombos#Paix#UnitéEntreLesPeuples#StopALaHaine#LaRussieNestPasMonEnnemi#RespectDesPeuples#Solidarité#NonALaManipulation#PaixEnEurope#LibertéDExpression