Функция 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
🍽 Frittata (Tortilla) de pasta 🍽
🍴Ingredientes🍴
✓fideos o espaguetis ya cocinados
✓1 cucharada de aceite de oliva virgen
✓3 cebollas finamente picadas
✓perejil
✓albahaca picada
✓1 tomate cortado en cubitos
✓4 huevos
✓½ taza de leche
✓Queso rallado
🥣 PREPARACIÓN 🥣
👁🗨 Pon aceite en una sartén y fríe las cebollas picadas hasta que queden transparentes.
👁🗨 En un bol bate los huevos y la leche. Añade la cebolla cocinada, el queso rallado, el perejil, albahaca, sal y pimienta.
👁🗨 Por último, pon los espaguetis. Mezcla bien todo.
👁🗨 En una sartén con una gota de aceite vierte la mezcla y cocina a fuego medio-bajo como si se tratase de una tortilla.
👁🗨 Da la vuelta y cocina por ambos lados.
#recetas con sobras
#CAFE#RECETAS ⛾ | Como en las mejores cafeterías: cómo preparar café con leche frío para combatir el calor https://ift.tt/XsRBZSE August 05, 2025 at 12:00PM
🍧 Arroz con Leche Cubano 🍧
🍴INGREDIENTES 🍴
3/4 tazas de arroz de grano largo o corto
2 tazas de agua
1/4 de cáscara de un limón amarillo mediano
2 palitos de canela en rama
1 lata (12 onzas) de leche evaporada
1 lata (14 onzas) de leche condensada azucarada
1 cucharadita de extracto de vainilla
1/4 cucharadita de sal
Mas agua, si es necesario
🥣 PREPARACIÓN 🥣
👁🗨 En una olla a fuego mediano a mediano alto, hierve el arroz, el agua, la cáscara de limón amarillo y los palitos; luego baja a fuego bajo y tapa. Cocina a fuego lento durante 10 minutos, o hasta que el arroz esté tierno.
👁🗨 Una vez que el arroz esté tierno, retira la cáscara de limón con una cuchara.
👁🗨 A fuego lento, agrega a la misma olla, gradualmente la leche evaporada y la leche condensada endulzada, revolviendo constantemente para evitar que el arroz se pegue.
👁🗨 Agrega la sal y el extracto de vainilla, revolviendo constantemente.
👁🗨 Cocina; continúa revolviendo durante unos 7 a 10 minutos, hasta que la mezcla espese. Hasta obtener la consistencia deseada.
👁🗨 Retira del fuego y deja enfriar antes de colocar en el refrigerador tapado.
Nota: el secreto para un gran arroz con leche es que el arroz este tierno! Siempre poner el arroz a remojar en agua al menos dos horas antes de comenzar a preparar la receta.
#postres#recetas#cubanas