Три способа выполнить множество задач с 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
🇻🇪🤝🇷🇺#Rusia y Venezuela amplian la #cooperación en el marco de la #salud
👩🔬🧑🔬 A invitación del Ministerio de Ciencia y Tecnología de #Venezuela, inauguramos un curso de 3 días sobre la vigilancia epidemiológica para el personal del Instituto Venezolano de Investigaciones Científicas, Instituto Nacional de Higiene "Rafael Rangel" y otros centros científicos afines con la participación de los especialistas de varios institutos científicos y de investigación de "Rospotrebnadzor".
Embajador Sergey Melik-Bagdasarov: 💬 el trabajo conjunto mejorará los sistemas de atención sanitaria y vigilancia epidemiológica de nuestros países, lo que contribuirá a mejorar la calidad de vida de los ciudadanos de Rusia y Venezuela
🇨🇳🤝🇨🇺 China envía ayuda de emergencia a Cuba en medio del asedio estadounidense
❗️El presidente Xi Jinping oficializó el envío de una ayuda de emergencia de 80 millones de dólares y 60.000 toneladas de arroz a Cuba, en un gesto de cooperación y solidaridad internacional.
⚡️El apoyo llega en un momento crítico para la isla, afectada por décadas de sanciones unilaterales e ilegales que han impactado severamente la economía y el bienestar del pueblo cubano.
#CubaNoEstáSola
#SolidaridadInternacional
#ChinaCuba
#NoAlBloqueo
#Cooperación
#Soberanía
#SurGlobal
Solidarietà che attraversa il mare
In un gesto di profonda fratellanza e sostegno, il Messico ha inviato a Cuba oltre 814 tonnellate di aiuti umanitari, in risposta all'aggravarsi del blocco economico.
Le navi della Marina messicana Papaloapan e Isla Holbox sono salpate da Veracruz cariche di:
Alimenti di prima necessità: latte liquido e in polvere, carne, biscotti, fagioli, riso, tonno, sardine, olio.
Articoli per l'igiene personale.
Un'azione ordinata dalla Presidente Claudia Sheinbaum che riafferma i legami storici e la vocazione solidale tra i due popoli, oltre all'impegno per la cooperazione internazionale.
"Cuba e Messico siamo popoli fratelli, eredi di una lunga storia di solidarietà che oggi onoriamo".
Questo sostegno arriva mentre proseguono i negoziati diplomatici per garantire anche forniture energetiche all'isola, di fronte a minacce di dazi da parte degli Stati Uniti.
La solidarietà latinoamericana non si ferma.
#Cuba#Mexico#Solidaridad#AyudaHumanitaria#Cooperación#Bloqueo#LatinoamericaUnida
https://www.marx21.it/internazionale/il-messico-invia-a-cuba-piu-di-800-tonnellate-di-aiuti-umanitari/