Три способа выполнить множество задач с 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
As we contend with national, regional, and global health security threats, our #NCDCStrategy 2023-2027 captures our collective vision and commitment to deliver on our mandate.
Are you set to join us for the launch?
🗓️Tuesday 21 November 2023
Get notified
🔗bit.ly/NCDCStrategyLaunch
#Vision2Action
Our NCDC 2023-2027 STRATEGY AND IMPLEMENTATION PLAN has been launched and is available for download
Access via
https://ncdc.gov.ng/themes/common/files/establishment/0ee30df42b787ee3bbced29b9930b27f.pdf
#NCDCStrategy#IamHealthSecurity#Vision2Action
We are very excited to present to you:
The Nigeria Centre for Disease Control and Prevention 2023-2027 STRATEGY AND IMPLEMENTATION PLAN
Download via
https://ncdc.gov.ng/themes/common/files/establishment/0ee30df42b787ee3bbced29b9930b27f.pdf
#NCDCStrategy#IamHealthSecurity#Vision2Action
Today, we're taking the next step by launching the NCDC Strategy 2023 to 2027, tagged ‘vision into action’"
Follow the discussion via
https://twitter.com/NCDCgov/status/1726894890158887036?t=Jd4yndV7SWHGomEakivxxA&s=19
#NCDCStrategy#IamHealthSecurity#Vision2Action
The D-DAY has commenced.
Join us now as we kickstart our #HealthSecurity partners meeting and the #NCDCStrategy 2023-2027 launch event.
🔗bit.ly/NCDCStrategyLaunch
#IAmHealthSecurity#Vision2Action
Transforming our #Vision2Action, the #NCDCStrategy story continues 💪🏾
The #NCDCStrategy 2023-2027 is set to be launched❕
Join us for our health security partners meeting and strategy launch.
When❓
🗓️Tuesday, 21 November 2023
#SaveTheDate via
🔗bit.ly/NCDCStrategyLaunch
#IAmHealthSecurity