Функция 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
Серьезное ДТП на улице Академика Заболотного
По предварительным данным, водитель седельного тягача #DAF, гос. номер #BH1809HI не справился с управлением и снес столб. К счастью обошлось без пострадавших
СПЕЦИАЛЬНОЕ ПРЕДЛОЖЕНИЕ
▫️Официальный дилер марки DAF - компания «БорнТракСервис» готова предложить клиентам ЛК «ДиректЛизинг» Грузовой тягач марки DAF XF 105.460 2017 года по специальной цене: 5 250 000 рублей РФ.
▫️Колесная формула 4х2
▫️Кабина Space Cab
▫️Бортовой компьютер
▫️460 л.с.
▫️АКПП
▫️Автомобиль в наличии у дилера
Ждём Ваши заявки на лизинг.
▫️Аванс — 20%
▫️Срок лизинга — 36 месяцев
Заполнить заявку Вы можете на нашем сайте https://d-leasing.ru/auto/
#лизинг
#ДиректЛизинг
#DAF
#тягачвлизинг
#Москва
Rahim AlHaj & Amjad Ali Khan — Ancient Sounds (UR Music, 2009)
#traditional#oud#sarod#tabla#daf#Iraq#India
Альбом Ancient Sounds — диалог между двумя культурами, сочетающий в себе классические традиции арабской и индийской музыки. Рахим АльХаджа из Ирака играет на уде, Амджад Али Хан из Индии — на индийском сароде, а в аккомпанементе можно услышать индийские барабаны табла и ближневосточный бубен даф.
Однако дуэт АльХаджа и Али Хана не звучит эклектично. Дело в том, что сарод является родственником, а возможно и потомком афганского рубаба. Поэтому его сочетание с арабским удом можно воспринимать скорее как отсылку к музыке Ирана, где можно встретить и уд, и рубаб, и перкуссию из Индии и арабского мира.
Spotify | AppleMusic | VK
Qais Essar — Echoes Of The Unseen (Worlds Within Worlds, 2024)
#traditional#hindustani#rubab#dilruba#daf#tabla#bansuri#santoor#Afghanistan
Каис Эссар — афганский композитор и инструменталист, известный своим новаторским подходом к традиционной музыке, сочетающим наследие с современностью. В своём альбоме Echoes of the Unseen Эссар экспериментирует с афганской классической музыкой, в центре которой находится рубаб — национальный инструмент Афганистана (и предшественник индийского сарода).
Композиции альбома основаны на рагах — традиционных мелодических формах афганской и индийской классической музыки, которые соответствуют определённым временам суток, начиная с утра и заканчивая ночью. Полевые аудиозаписи природы Северной Аризоны, где живёт Эссар, создают в альбоме дополнительное измерение естественных звуков. А за многообразие традиционных инструментов на разных треках отвечали Сандип Сингх (дильруба), Ниламджит Дхиллон (табла), Эрик Занг (даф), Джас Ахлувалиа (табла), Камалджит Ахлувалиа (сантур) и Химаншу Нанда (бансури).
Экспериментальный подход Эссара позволяет расширить границы звучания рубаба через импровизацию в рамках традиции. Музыкант обращается к музыкальной линии Устада Аллаудина Хана, особенно к игре на сароде Устада Али Акбар Хана и Устада Аашиш Хана (сына и внука Аллаудина, соответственно). А в рамках текущего запрета на музыку в Афганистане, Эссар подчёркивает важность сохранения и развития наследия рубаба, обеспечивая выживание инструмента в современном музыкальном контексте.
🔗AppleMusic | Spotify | YouTube | Deezer | TIDAL | Napster | Amazon | Bandcamp | Telegram