Три способа выполнить множество задач с 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
Let's work together to prevent the spread of #Lassafever.
Be a guardian of proper sanitation in your community and promote frequent #Handwashing with soap and running water.
Read our latest #LassaFever situation report:
https://ncdc.gov.ng/diseases/sitreps/?cat=5&name=An%20update%20of%20Lassa%20fever%20outbreak%20in%20Nigeria
Let's work together to prevent the spread of #Lassafever.
Be a guardian of proper sanitation in your community and promote frequent #Handwashing with soap and running water.
Read our latest #LassaFever situation report:
https://ncdc.gov.ng/diseases/sitreps/?cat=5&name=An%20update%20of%20Lassa%20fever%20outbreak%20in%20Nigeria
#Lassafever is preventable.
Be a guardian of proper hand hygiene in your community
Promote frequent #handwashing with soap and running water.
#LassaFeverInfo
#Handwashing with soap under clean, running water is very vital to the prevention of #cholera.
Important #handwashing moments⬇️
✅While caring for the ill
✅After using the toilet
✅Before food preparation
✅Before and after eating
✅After touching high-contact surfaces
#STOPcholera
#Handwashing is a basic and effective tool against infections.
If we do not become sick, we would not need to use #antimicrobials.
Encourage your loved ones to practice frequent #handwashing with soap under running water.
Do your part to prevent #AntimicrobialResistance
#HandHygiene with clean, running water is very vital to the prevention of #cholera.
Important #handwashing moments⬇️
✅While caring for the ill
✅After using the toilet
✅Before food preparation
✅Before and after eating
✅After touching high contact surfaces
#TakeResponsibility
#HandHygiene with soap under clean, running water is very vital to the prevention of #cholera.
Important #handwashing moments⬇️
✅While caring for the ill
✅After using the toilet
✅Before food preparation
✅Before and after eating
✅After touching high contact surfaces
#TakeResponsibility
#HandHygiene with clean, running water is very vital to the prevention of #cholera.
Important #handwashing moments⬇️
✅While caring for the ill
✅After using the toilet
✅Before food preparation
✅Before and after eating
✅After touching high contact surfaces
#TakeResponsibility
#HandWashing remains the most basic and effective means to prevent the spread of infections.
Frequent #handwashing with soap under running water at home, work, health facilities, gatherings, and public spaces is highly important to stay healthy.
Let us all make #cleanhands a regular habit. It protects us all.
#TakeResponsibility
#HandWashing is a basic &effective tool against infections.
If we don't become sick, we would not need to use #antibiotics.
Let us promote the practice of #handwashing in our homes & communities to prevent #AntimicrobialResistance together.
#WorldAntimicrobialAwarenessWeek2022