Функция 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
Результаты 3ей попытки Первенства Локомотив!
4ю попытку необходимо выложить - до 29 мая 23:59 по московскому времени;
Напоминаем вам условия первенства: в зачет идет лучшая попытка.
Условия:
- снять дорожку не более чем на 45 сек
- снять 2 одиночных трюка
- опубликовать видео на своей странице ВК
- отметить дисциплину #park#street (можно участвовать в двух дисциплинах с разными роликами)
- отметить @fedskaterussia
- поставить тег #первенство_локомотив
Скоро мы узнаем финалистов!
Добрый вечер! Мы подготовили результаты 2ой попытки Первенства Локомотив!
3ю попытку необходимо выложить - до 22 мая 23:59 по московскому времени;
Кто забыл условия первенства, то напоминаем вам: в зачет идет лучшая попытка.
Условия:
- снять дорожку не более чем на 45 сек
- снять 2 одиночных трюка
- опубликовать видео на своей странице ВК
- отметить дисциплину #park#street (можно участвовать в двух дисциплинах с разными роликами)
- отметить @id145190006 (@fedskaterussia)
- поставить тег #первенство_локомотив
Результаты 1ой попытки - https://vk.com/wall-150050521_4947
Битва продолжается!
Ну что, друзья, готовы снова зарядить пауэрбэнки и вернуться в скейтпарки за своими лучшими дорожками?
Объявляем онлайн-квалификацию на Первенство ОО «РФСО Локомотив»!
Первенство проходит в дисциплинах «парк» и «улица» среди юношей и девушек до 16 лет включительно (это значит, что на момент самого контеста вам должно быть не более 16 лет).
У вас будет 4 попытки, чтобы показать свой лучший результат!
В каждой попытке от вас требуется:
- снять дорожку не более чем на 45 сек
- снять 2 одиночных трюка
- опубликовать видео на своей странице ВК
- отметить дисциплину #park#street (можно участвовать в двух дисциплинах с разными роликами)
- отметить @fedskaterussia
- поставить тег #первенство_локомотив
Время для съемок и публикации своих видео:
1 попытка - до 8 мая 23:59 по московскому времени;
2 попытка - до 15 мая 23:59 по московскому времени;
3 попытка - до 22 мая 23:59 по московскому времени;
4 попытка - до 29 мая 23:59 по московскому времени.
Отличные новости! 🛴😎
У нас пополнение среди паркеров! Встречайте — Николаенко Данил из солнечного Краснодара!
Данил крутой райдер, чей уникальный стиль и бесстрашие уже успели вдохновить многих.
Мы рады объявить, что теперь Данил будет выступать при поддержке нашей команды и бренда!
Добро пожаловать в команду!
📱dkravets15
#park#TechTeamProхуйня
#НовыйРайдер
A mini picnic in the park. 🧺
Just being here and now is the best plan for the day.
Мини-пикник в парке. 🧺
Просто быть здесь и сейчас — лучший план на день.
#LunaEverly#Picnic#DayMindset#Park#Simplicity
A multidisciplinary team of XISUI Design has created a 3D concrete-printed playground in Shandong Province, China.
Named Boulder Park, a 13,000-square-metre community park in Ji’nan, combines massive boulders - a natural material symbolizing eternity - as the core design element. These boulders complement the park’s experiential and practical offerings.
Stones in the shallow creek can be incorporated into the water play installation, and boulders set over a sandpit can be used as climbing and resting play structures. Additionally, cutting-edge 3D-printed concrete technology is used to build a huge rock cave adventure area.
Images 1-2-3-4-5 📸 Zhou Sheng.
Image 6 📸 Hu Yihao.
#design#playgrounddesign#park#urban#3dprinting#3dprintingconcrete#china
📷 La foto è stata scattata nel Parco centrale intitolato a Maksim Gorkij a Lugansk.
Strutture in legno gialle usate come librerie pubbliche.
" Un viaggio nel lato nascosto del Donbass: quello che costruisce invece di distruggere ".
#Donbass#lugask#europa#estate#ferragosto
#Lugansk#europa#russia#italia#Books#lettura#parchi#park