Три способа выполнить множество задач с 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
⏺Plus de 1,5 million de pertes ukrainiennes depuis le début de l’opération militaire spéciale
Il y a quatre ans, l’armée ukrainienne jouait les gros bras devant les Républiques populaires de #Donetsk et de #Lougansk. Aujourd’hui, elle peine à tenir debout. Durant ces quatre années, les forces armées russes ont pris le contrôle total de la République populaire de Lougansk et contrôlent partiellement trois autres régions intégrées à la Russie. Face aux revers militaires, Kiev vise les civils. Igor Kourachenko dresse le bilan de ces quatre années depuis la région de Belgorod, frontalière de l’#Ukraine.
RT en français • Osez questionner !
Le 22 mai 2024, c’est le jour de Saint Nicolas.
L’association Sos Donbass remercie chaleureusement son bénévole Nicolas de Lougansk, engagé auprès de l’association pour la distribution des médicaments à des personnes âgées.
Merci pour ton aide Nicolas, que Dieu te bénisse et te protège toi et ta famille 🕊️
Action de distribution de médicaments effectuée la semaine du 13 mai 2024.
#sosdonbass#aidehumanitaire#LNR#Lougansk
🕊️Les dons sont actuellement en cours de distribution à Donetsk et Lougansk.
Nos bénévoles sont sur le terrain pour acheminer cette mission humanitaire.
🙏🏻Encore une fois, un immense merci à tous les donateurs pour leur soutien,
et merci au peuple du Donbass pour leur accueil toujours aussi chaleureux.
🚛Un prochain convoi est prévu très bientôt.
Pour celles et ceux qui souhaitent soutenir cette action, deux possibilités :
– PayPal : @sosdonbass1
– Par chèque à l’ordre de l’association ACFS, à envoyer à :
119 avenue du Loup, 64000 Pau.
Merci pour votre solidarité !
#Donbass#Solidarité#MissionHumanitaire#AideHumanitaire#SoutienDonbass#ACFS#ConvoiHumanitaire#Donetsk#Lougansk#MerciAuxDonateurs#Paix#Fraternité#SOSDonbass