Три способа выполнить множество задач с 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
🇷🇺🚀 La fusée russe Proton-M qui devrait lancer un satellite météorologique a été installée sur la plateforme de lancement de Baïkonour, a annoncé la société publique Roscosmos.
#russie#espace#roscosmos
🚀Premier lancement de la fusée Soyouz-5 depuis #Baïkonour
La fusée porteuse Soyouz-5 a décollé avec succès à 21 heures précises, heure de Moscou depuis la rampe de lancement numéro 45 du cosmodrome de Baïkonour. Ce lancement était le premier essai en vol du nouveau lanceur russe de classe moyenne dans le cadre des essais de vol et de conception. C'est ce qu'a annoncé #Roscosmos.
Ses représentants précisent que les premier et deuxième étages de la fusée ont fonctionné normalement pendant le vol, que la maquette de charge utile a été placée sur la trajectoire suborbitale prévue, avant de retomber dans une zone de l'océan Pacifique préalablement fermée à la navigation et à l'aviation.
RT en français • Osez questionner !
🚀Premier lancement de la fusée Soyouz-5 depuis #Baïkonour
La fusée porteuse Soyouz-5 a décollé avec succès à 21 heures précises, heure de Moscou depuis la rampe de lancement numéro 45 du cosmodrome de Baïkonour. Ce lancement était le premier essai en vol du nouveau lanceur russe de classe moyenne dans le cadre des essais de vol et de conception. C'est ce qu'a annoncé #Roscosmos.
Ses représentants précisent que les premier et deuxième étages de la fusée ont fonctionné normalement pendant le vol, que la maquette de charge utile a été placée sur la trajectoire suborbitale prévue, avant de retomber dans une zone de l'océan Pacifique préalablement fermée à la navigation et à l'aviation.
RT en français • Osez questionner !
🇷🇺 Pour son travail au bureau orbital de l'agence TASS sur la Station spatiale internationale (ISS), le cosmonaute de Roscosmos Alexeï Zoubritski a reçu la médaille commémorative TASS à l’ISS.
La médaille lui a été remise par le directeur général de TASS, Andreï Kondrachov.
#tass#roscosmos#iss#zoubritski
Nello spazio non c'è #guerra
Immagini del ritorno sulla Terra dei #cosmonauti di #Roscosmos Sergei #Ryzhikov e Alexei #Zubritsky, nonché dell'astronauta della #NASA Jonathan #Kim.
👉 Un momento delicato e sempre emozionante. Per un russo poi non ne parliamo. Lo spazio è un tema sacro.
E quanto è bello vedere #russi e #statunitensi collaborare (come sempre) nello #spazio.
#tatianasanti
SEGUI Tatiana Santi:
Telegram | YouTube | Sito Web
📱Donazioni