Проверяет понимание механизма тайм-аутов в асинхронном программировании и поведения корутины при превышении времени ожидания.
В асинхронном программировании на Python корутины могут выполняться неопределённо долго, например, при ожидании ответа от сервера. Чтобы программа не зависла, используется механизм тайм-аута. Если корутина не завершается за указанное время, возникает исключение asyncio.TimeoutError.
Тайм-аут задаётся с помощью asyncio.wait_for() или контекстного менеджера asyncio.timeout(). Когда время истекает, корутина отменяется (через Task.cancel()), и управление передаётся в блок обработки исключения.
import asyncio
async def slow_operation():
await asyncio.sleep(10)
return "Результат"
async def main():
try:
result = await asyncio.wait_for(slow_operation(), timeout=2)
print(result)
except asyncio.TimeoutError:
print("Операция не завершилась вовремя")
asyncio.run(main())Вывод: Тайм-ауты необходимы для создания отказоустойчивых асинхронных приложений. Они предотвращают зависание и позволяют корректно обрабатывать задержки или сбои.
Уровень
Рейтинг:
4
Сложность:
5
Навыки
JavaScript
Node.js
Ключевые слова
Подпишись на Python Developer в телеграм