Три способа выполнить множество задач с 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
🇰🇬 В Кыргызстане задержан брат экс-главы ГКНБ
В Кыргызстане задержан брат экс-главы Государственного комитета национальной безопасности (ГКНБ) - Шаирбек Ташиев. Как сообщает МВД, задержание произошло в рамках расследования коррупционного дела, связанного с перепродажей нефти через компанию «Кыргызнефтегаз».
Шаирбек Ташиев, бывший депутат парламента, подозревается в совершении коррупционных преступлений, которые нанесли ущерб государству в размере ок. $47 млн. Преступная схема включала посреднические компании, через которые нефть перепродавалась на государственное предприятие «Кыргыз петролеум компани», что способствовало незаконному извлечению прибыли.
Камчыбек Ташиев доставлен на допрос в МВД Кыргызстана
В Кыргызстане сменили главу Госкомитета Нацбезопасности
#Кыргызстан@turkicfront88#türk
В Турции найдены запасы редкоземельных элементов в 694 млн тонн, — Эрдоган
Это второй по величине показатель в мире после Китая. Разработка и добыча этих запасов может вывести Турцию в число пяти крупнейших мировых производителей редкоземельных элементов.
#Türkiye#türk@turkicfront88
🇷🇺🇦🇿 Вчера Грозном почтили память жертв авиакатастрофы рейса Баку–Грозный и наградили выживших бортпроводников
В Грозный, в сквере имени Гейдара Алиева, состоялась церемония открытия мемориальной плиты в память о жертвах катастрофы пассажирского самолёта авиакомпании AZAL, выполнявшего рейс Баку–Грозный и потерпевшего крушение 25 декабря 2024 года.
В мероприятии приняли участие посол Азербайджана в России Рахман Мустафаев, президент авиакомпании AZAL Самир Рзаев, руководитель Администрации Главы и Правительства Чеченская Республика Галас Таймасханов, представители правительства и парламента Чечни, а также местной азербайджанской общины.
В рамках церемонии выжившим бортпроводникам рейса Баку–Грозный, потерпевшего крушение под Актау, были вручены государственные награды Чеченской Республики. Медалями «За заслуги перед Чеченской Республикой» награждены Зульфугар Асадов и Айдан Рагимли — за проявленное мужество и высокий профессионализм, благодаря которым удалось #azal#türk@turkicfront88#Azerbaycan