Три способа выполнить множество задач с 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
💻Dasturchi hayoti… haqiqatda shunday!
9:00 – "Bugun ertalab tezroq ish boshlayman"
9:30 – Kofe bilan kod yozishni boshlaydi
10:00 – Console.log everywhere… bug topildi, lekin uni tuzatish 2 soat davom etadi 🤯
12:00 – "Nega ishlamayapti?" deb o‘ylab, aslida oddiy vergul yetishmaydi 😂
13:00 – Ovqat va kod… hammasi bir ekranda 🍔
15:00 – Git conflict paydo bo'ldi, dunyo tugadi deb o'ylaydi
18:00 – "Bugun tezroq uyga boraman"
22:00 – Yangi g'oya keladi va yana kod yozishni boshlaydi
🤣 Dasturchilar, o'zingizni topdingizmi?
👇 Izohlarda eng qiyin buglaringizni yozing, eng kulgilisi kanalda repost qilinadi!
#dasturchihayoti#programmerlife#kodlash
💻@dasturlash_hayoti— dasturchilar hayoti va IT memlari aralash kanal😉
#dasturlash#TZ#texniktopshiriq#webdevelopment#dasturchihayoti
TZ (Texnik topshiriq) yo'q bo‘lsa nima bo'ladi?
❌ Dasturchi: "Men tushunganimcha qildim"
❌ Buyurtmachi: "Men bunday demagandim"
❌ Natija: 10 marta qayta tuzatish, asab, vaqt yo'qotish 😅
📄TZ nima beradi?
✅ Nima qilinishi aniq bo‘ladi
✅ Qanday texnologiya ishlatilishi belgilanadi
✅ Muddat va natija tushunarli bo‘ladi
✅ "Boshqacha qil" degan gaplar kamayadi
Yaxshi loyiha — yaxshi TZ bilan boshlanadi.
Kod yozishdan oldin yozma kelishuv qiling ✍️
Dasturchilar ham, buyurtmachilar ham buni yodda tutsin!
💻@dasturlash_hayoti— dasturchilar hayoti va IT memlari aralash kanal😉
Dasturchi bo‘lishni xohlaysanmi? Unda bunga tayyor bo‘l😂
1️⃣“Bugun 10 ta task yopaman” deysan
Soat 11:00 — bitta vergul xato chiqadi 😭
2️⃣Kod ishlamayapti
30 minut debug qilasan…
Oxiri bilasan: id o‘rniga ID yozgansan 🤦♂️
3️⃣ Internet o‘chsa — hayot ma’nosiz
ChatGPT yo‘q = 70% bilim ham yo‘q 😂
4️⃣Git conflict chiqsa
O‘zingni NASA serverini buzib qo‘ygandek his qilasan 💥
5️⃣“Bu oddiy loyiha” deyishadi
Oddiy loyiha degani:
Login, register, admin panel, to‘lov tizimi, API, mobile versiya 😅
6️⃣ Deadline yaqinlashsa
Bir kunda 3 kunlik energiya paydo bo‘ladi ⚡️
7️⃣Kod ishlagan payt
O‘zingni xuddi hacker kinodagi bosh qahramondek his qilasan 😎
Dasturchilik — bu kasb emas.
Bu — sabr testi 😂
Agar shunaqa holatlar sizda ham bo‘lsa:
Reaksiya qoldiring 👇😄
#dasturchihayoti#programmerlife#itmem#webdasturlash#backend#frontend
💻@dasturlash_hayoti— dasturchilar hayoti va IT memlari aralash kanal😉