Функция asyncio.wait() это еще один способ вызвать множество асинхронных задач.
Она работает в нескольких режимах.
1. Самый простой - ждем завершения всех задач
async def main():
tasks = [asyncio.create_task(do_it(i)) for i in range(10)]
done, pending = await asyncio.wait(
tasks,
return_when=asyncio.ALL_COMPLETED
)
for task in done:
try:
print(task.result())
except Exception as e:
print(e)
Очень похоже на gather, но работает не так.
▫️возвращает не результаты, а два сета с объектами Task у которых можно забрать результат через task.result() если они в списке done
▫️не гарантирует порядок результатов так как оба объекта это set
▫️не выбрасывает исключение когда оно появляется, а сохраняет его в Task. Исключение появится когда попробуете забрать резултьтат.
2. Ждем завершения первой задачи, даже если там ошибка.
async def main():
tasks = [asyncio.create_task(do_it(i)) for i in range(3)]
done, pending = await asyncio.wait(
tasks,
return_when=asyncio.FIRST_COMPLETED
)
# в done может быть несколько задач!
for task in done:
try:
print(task.result())
except Exception as e:
print(f"Fail: {e}")
# Оставшиеся задачи в pending, как правило, нужно отменить, иначе они будут продолжать работать
for task in pending:
task.cancel()
В сете done будут таски которые успели завершится, причем как успешно так и нет.
3. До первой ошибки.
Тоже самое, но с аргументом FIRST_EXCEPTION
done, pending = await asyncio.wait(
tasks,
return_when=asyncio.FIRST_EXCEPTION
)
Функция завершается как только первая задача упадет с ошибкой.
Учтите, что в любом случае done вы можете обранужить несколько задач, как с ошибками так и успешные.
↗️ Полный листинг примеров здесь
#async
Наконец-то заказал себе нормальный моник Samsung на 24" в пару к одному из этих старичков, больше никаких пыток для глаз..
HDD BarraCuda 1TB в #пк и контейнер для 2.5", чтоб после прокачки одного из местных ноутов обзавестись халявным внешним HDD на пару соток гиг 🧐
и замену своим умирающим мейзу POP - недавно вышедшие Realme Buds Air, позже отпишу как они..
#device
Решил поделиться своей историей болезни (телефонов).
Встречайте! История телефонов
(#истории#device)
Всё началось где-то в классе так 3-4, тогда папа отдал мне свой телефон купив себе новую моторолу.
Я достаточно поздно получил свой первый телефон в отличии от сверстников, но позже.. Я начал стремительно обгонять, меняя их как перчатки
Вот краткий гид по прошлому моих средств связи:
–> Siemens M55 без камеры (утопленник сельского туалета в лагере)
–> Nokia 1110 оранжевый от мамы с чб экраном
–> МТС 236 за 199грн... производства ZTE (лето 2011)
–> Nokia C1-01 с камерой, бт, ЖА(Б)ВА ИГРАМИ и печеньками
–> LG GS290 на жаве, но с емкостным экраном и неубиваемым метал корпусом, МАШИНА!
Где-то в это время мне купили первый и единственный планшет на Android (за 999 грн), так что моё знакомство с мирком Fruit Ninja и подобного начался именно здесь, а не с следующего телефона.
К слову говоря, я всё ещё не могу вспомнить куда же он делся ._.
–> LG Optimus L3 [E400] (первый андроид тел.)
–> LG Optimus L5 [E612] (был слит брату как и предыдущий по низкой цене)
–> Samsung Galaxy S4 Active (единственный флагман что у меня был, куплен в конце 2013. Украден во время лыжного курорта в Словакии)
–> Sony Xperia M2 (куплен в первой половине 2015 года, утопленник Средиземноморья в Израиле)
–> Microsoft Lumia 430 (уже не помню куда он делся, но в те времена обновился до Win10M даже)
–> Doogee X5 (сука ненавижу)
–> LG Spirit [H422] (купила себе маман, я на второй день обменялся на дужи :) С ним я начал флексить в кастомы и патчи из-за нехватки встроенных 8gb)
–> Motorola Moto G3 [2015] (выпущен на 5, прошит на 8, а сейчас прошивки с 9 андроидом есть, п-поддержка)
–> Xiaomi Redmi 4 Prime [markw] (матрица пошла гулять, при этом стекло тел не пострадало, пострадали матрица и накленное стекло. Меняли раза 3 так как был брак тача, в итоге в срочном порядке перешёл на next ph.)
–> Xiaomi Mi A1 [tissot] (ааа, первое сяоми комьюнити, скорблю)
–> Xiaomi Redmi Note 5 [whyred] (комьюнити топовое, люблю этих ребят, лучшие знакомства в интернете. Уже олд, менял батарею, смаковал разные ром'ы)
–> Poco X3 NFC [surya] <– im here