Три способа выполнить множество задач с 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
#idioms
💥Let the 'side down (BrE)
○to disappoint your
family, friends, team, etc. by not being as
successful as they expect, or not helping or
supporting them.
☆ John would never let the side down.
☆ I knew I was letting the side down (=
disappointing my family, etc.) by not going to
college.
#idioms
💥Water off a duck's back
○criticism or unpleasant things have no effect on someone; they don't take it personally.
▪️ No matter how much they criticize her, it's like water off a duck's back — she just keeps going.
▪️ He laughed off all the negative comments, letting them be water off a duck's back.
#idioms
💥A BOOTLICKER
🔅Someone who flatters or obeys others in power to gain favour.
▪️Jeff is such a bootlicker, always agreeing with the boss no matter what.
#idioms
☆Crunch time
•The period of time just before a project has to be completed and everyone has to work hard .
●I’m not getting much sleep these days,
because it’s crunch time at work.
#idioms
☆Run on fumes
•To continue to stay awake when feeling exhausted .
●I really have to take a nap now. I haven’t slept for twenty hours and I’m
running on fumes.
#idioms
⚜Turn the clock back
●to return to a situation that existed in the past; to return to
old-fashioned methods or ideas.
●This new law is
an attempt to turn the clock back.
#idioms
💥 leave sb to their own devices
▪️to leave sb alone to do as they wish.
🔅Once I’ve explained things to him I tend to leave him to his own devices.
#Idioms
💢To pull out all the stops
♠️To make every possible effort to get something done
Ex:- The company pulled out all the stops to advertise their new product.
#idioms
💥in a bind | fix | jam
⚜If someone is in a bind, or in a jam, or in a fix, they're in a bad or difficult situation.
⚡️Jimmy's in a bind because he owes a lot of money to some mafia guys, and he hasn't got it.