Функция 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
#аренда#А755⤴️⤴️⤴️
🥃 Виски — очень придирчивый напиток, моветоном считается пить его залпом, вкус надо прочувствовать, не перегружая вкусовые сосочки.
С квартирой так же. Долгая выдержка 🪵 дерева, насыщенный янтарный цвет и ничего лишнего. (Так уж и быть, можно разбавить 🐕 пушистым компаньоном). Не одному же наслаждаться уникальным вкусом жилья.
💸 110к/мес + счетчики
📐 56 м²
🪜 этаж 4 из 6
📍Московский пр-кт, 172к7
📲 На связи агент Галина 89111462591
*больше фото в комментариях ⤵️
Нестыдные | Петербург.
Подписаться
#аренда#А755⤴️⤴️⤴️#сноваактуальна
🥃 Виски — очень придирчивый напиток, моветоном считается пить его залпом, вкус надо прочувствовать, не перегружая вкусовые сосочки.
С квартирой так же. Долгая выдержка 🪵 дерева, насыщенный янтарный цвет и ничего лишнего. (Так уж и быть, можно разбавить 🐕 пушистым компаньоном). Не одному же наслаждаться уникальным вкусом жилья.
📐 56 м²
🪜 этаж 4 из 6
💸 110к/мес + к/у
📍Московский пр-кт, 172к7
📲 на связи агент Анжелла +7 906 250 2162
*больше фото в комментариях ⤵️
Нестыдные | Петербург.
Подписаться
💥 АКТУАЛЬНОСТИ ПОСТ | АРЕНДА💥
#А750
Крестовский проспект, 12
250.000₽/мес + ку 200.000₽/мес + ку
#А753
Наб. Реки Мойки, 40
450.000₽/мес + счетчики
#А304
Фурштатская, 11
150.000₽/мес + ку
#А755
Московский пр-кт, 172к7
110.000₽/мес + счетчики
#А754
Лермонтовский проспект, 30
139.000₽/мес + счетчики
🕰 Сдается с января
#А477
🔥#БЕЗКОМИССИИ
Миллионная, 17
80.000₽/мес + ку 75.000₽/мес + ку
#А619
Литейный, 24
300.000₽/мес + к/у 290.000₽/мес + к/у
Если на канале выходила публикация с вашей квартирой в аренду и она сейчас актуальна — напишите в таком же формате* короткое сообщение в комментариях к этому посту ⤵️
- номер объявления (хэштег)
- адрес
- стоимость
Нестыдные | Петербург.
Подписаться