Три способа выполнить множество задач с 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
#diqqat#hemis#talaba#YAN
❗️Barcha professor-o’qituvchilar va talabalar diqqatiga!
✅ HEMIS AT tizimining oʻqituvchi profilidagi “Yakuniy nazorat” va “Boshqa nazoratlar” menyularidagi “Reyting qaydnomalari”da oʻzgarishlar boʻlishi kutilmoqda.
⚠️ Tizimning endigi chiqariladigan yangi versiyasida (1.4.5) Reyting qaydnomasiga fan boʻyicha talabalarning oʻzlashtirish baholarini bir marta kiritib saqlash masalasi joriy qilinmoqda. Yaʼni bitta qaydnoma bir marta toʻliq toʻldirilib, bir marta saqlanishi mumkin.
🙏 Shuning uchun professor-oʻqituvchilar talabalarning YAN topshiriqlarini toʻliq baholab, barcha talabalar toʻgʻri baholanganiga ishonch hosil qilib keyin tizimning reyting qaydnomasiga kiritishini soʻraymiz.
✅ Talabalardan esa YANgacha bo’lgan barcha nazoratlardan belgilangan baholarni o’zlashtirish hamda YANga o’z vaqtida va tegishli talablarni bajargan holda kirishlari so’raladi.
☄️ Tizimga baholarni kiritish reglament boʻyicha 5 kun ichida faqat bir marta amalga oshirilishi mumkin. Baholar kiritilib saqlangandan soʻng reyting qaydnomasi toʻliq yopiladi. Yopilgan reyting qaydnomasiga qoʻshimcha kiritish va oʻzgartirishlarga ruxsat berilmaydi.
➡️ Barcha professor-oʻqituvchilar va talabalarga yetkazing.
👨💻Ps: qoʻshimcha savol, muammo va takliflar boʻyicha @registratorofis_botga murojaat qilishingiz mumkin.
✈️TerDU Registrator ofisi