Три способа выполнить множество задач с 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
⭐️ 15 Passive income #Ideas
1 Sell on Amazon
2 Rent out a room
3 Create a gaming app
4 Start an ATM business
5 Buy a vending machine
6 Invest in royalty income
7 Invest in dividend stocks
8 Buy & hold growth stocks
9 Invest in rental properties
10 Automate a shopify store
11 Grow a Youtube chennel
12 Start an influencer IG account
13 promote products as an affiliate
14 Create your own affiliate program
15 Save more with a high yield savings
✨news forex & Cryptocurrency✅
y aquí mi trabajo honesto <3 espero que les guste . Hoy hice mi prueba de español y me fue piola. Si quieren sugerir algún tipo de post soy todo oídos. #ideas
También aceptamos ideas y sugerencias, cambios de color, todo a tu gusto, porque recuerda que se acerca el mes del amor 🥂❤️ y la amistad 🥰
(Fotos tomadas de internet)
#ideas