Функция 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
#Sinfonía8#Haydn#ChristopherHogwood
Título:La Sinfonía n.º 8 en sol mayor
Autor:Franz Joseph Haydn
Movimientos:
🎵 00:00 I. Allegro molto, 3/8
🎵 05:27 II . Andante en do mayor, 2/4
🎵 16:53 III. Menuetto y Trio, 3/4
🎵 21:45 IV. La tempesta: Presto, 6/8
Interpretación:
La Academia de Música Antigua.
Director:
Christopher Hogwood
Fuente:🎼
@ClasicaAlAtardecer
#Sinfonía8#Haydn#ChristopherHogwood
LA SINFONÍA N.º 8 EN SOL MAYOR
La Sinfonía n.º 8 en sol mayor, Hoboken I/8, del compositor austríaco Joseph Haydn es la tercera sinfonía escrita tras haberse unido a la corte de los Esterházy en 1761, en la transición entre el Barroco y el Clasicismo. Es la tercera de la trilogía de sinfonías, que se llaman Le matin (n.º 6.), Le midi (n.º 7) y Le soir (n.º 8).
La orquestación de la sinfonía n.º 8 es muy similar a la de un concerto grosso del barroco, donde un pequeño grupo de instrumentos solistas destaca sobre todo el conjunto. En la sinfonía n.º 8, el grupo de solistas consta de un violonchelo y dos violines y el grupo mayor contiene dos oboes, una flauta, dos trompa, cuerdas, fagot y clavecín. El uso que Haydn hace del fagot y del clavecín recuerda al bajo continuo empleado continuamente durante el Barroco; sin embargo no lo usa en toda la obra.
Esta sinfonía tiene el número de movimientos que será habitual en las sinfonías clásicas (en la tónica de sol mayor a no ser que se indique otra cosa):
🎵I. Allegro molto, 3/8
🎵 II . Andante en do mayor, 2/4
🎵 III. Menuetto y Trio, 3/4
🎵 IV. La tempesta: Presto, 6/8
El primer movimiento es una Giga (danza) en la forma sonata y emplea una melodía de una canción de la ópera de Gluck Le diable à quatre llamada "Je n’aimais pas le tabac beaucoup (No me gustó mucho el tabaco)”. El último movimiento, también en forma sonata, subtitulado La tempesta, intenta mostrar la sensación de una tormenta.
En el primer movimiento, las cuerdas empiezan con una melodía principal de ocho compases, un tema que se repite durante todo el movimiento. Haydn hace uso del formato del concerto grosso en el segundo movimiento, con la melodía en el concertino, los dos violines y el violonchelo solistas. La melodía del minueto es bastante simple, con el fagot y las cuerdas llevando el tema en el trío. En el movimiento final, La tempesta (la tormenta), las cuerdas tienen varias figuras descendentes que sugieren la lluvia al caer, y saltos de octava en el violín se usan para crear tensión.
Hay una interesante anécdota sobre el tema de la flauta en este movimiento: cuando Haydn describe una tormenta en el último movimiento del oratorio Las estaciones, usa el mismo tema como en este movimiento, con la misma orquestación: un pasaje en la flauta con arpegios descendentes.
@ClasicaAlAtardecer