Функция 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
🇷🇺#RASP
Российские активы Evraz Plc с 1 апреля переведены на ПАО "Евраз"
Всего ПАО "Евраз" объединит около 60 юридических лиц, которые сохранят свои названия и продолжат операционную деятельность в качестве его дочерних обществ.
В ноябре прошлого года "Евраз КГОК" получил разрешение на совершение сделки, в результате которой он станет владельцем 93,2% акций угольной ПАО "Распадская"
mt в max
МНЕНИЕ: Мы не ожидаем рекомендации дивидендов Распадской за 2025 г. на фоне операционной убыточности и корпоративных изменений — ИК ВЕЛЕС Капитал #RASP
Читать далее
👉https://smartlab.news/i/180114
мы в max
Распадская отчёт РСБУ за I кв 2026 года:
📉 Выручка ₽4,6 млрд (₽5 млрд за I кв 2025 года), снижение на 8,6%
📉 Чистая прибыль ₽73,6 млн (₽393,5 млн в I кв 2025 года), снижение в 5,3 раза #RASP
Читать далее
👉https://smartlab.news/i/188153
мы в max
Распадская МСФО 2025 год:
📉Выручка ₽116,9 млрд (-26,4% г/г)
📉Убыток ₽53 млрд против убытка ₽11,8 млрд годом ранее
Читать далее
👉https://smartlab.news/i/180120
#RASP
🪨#rasp
Сегодня не добив до верха канала цена акции ушла на коррекцию.
В результате достигнут низ канала, откуда пытаемся отскочить.
☄️При очередном касание низа канала 161.55 буду брать лонг.
✅Тэйк - 168 (середина канала)
🔻Стоп-лосс - 158.5 (под минимум прошлого импульса)
Не иир
🪨#RASP
1/3 позиции зафиксирую.
Прибыль +1,5%✅
Стоп переставлю в безубыток.
Идея здесь: https://t.me/privatka_Kazakova/3255
Хотите больше таких идей? Ставим 100👍, и я готовлю новые идеи
Не иир
🪨#RASP (Распадская)
💥Беру от текущих 216.52 на отскок.
🤔Сегодня наблюдаем пробой вниз сильного уровня поддержки, стопы сняли, шортистов посадили на ложном пробое и вернулись над поддержку (синяя горизонтальная линия).
✅Цель - 230 (ретест снизу синей нисходящей линии)
🔻Стоп лосс на минимум сегодняшней сессии 211.8
Входим?
Да, откупаю - 👍
Нет, сижу на заборе - 🔥
Не иир