Сообщить об ошибке.

Асинхронный менеджер timeout_at() модуля asyncio в Python

Асинхронный менеджер для ограничения времени ожидания

Синтаксис:

import asyncio

# Новое в Python 3.11.
async with asyncio.timeout_at(when):
    await long_running_task()

Параметры:

  • when - это абсолютное время ожидания. Может быть None или float/int.

Возвращаемое значение:

  • Асинхронный менеджер контекста asyncio.Timeout. Подробнее в описании asyncio.timeout()

Описание:

Функция timeout_at() модуля asyncio создает асинхронный контекстный менеджер аналогично asyncio.timeout(), за исключением того, что аргумент when - это абсолютное время ожидания, или None.

Новое в Python 3.11.

Пример использования asyncio.timeout_at().

async def main():
    loop = asyncio.get_running_loop()
    deadline = loop.time() + 20
    try:
        async with asyncio.timeout_at(deadline):
            await long_running_task()
    except TimeoutError:
        print("Время длительной операции истекло.")

    print("print будет выполняться независимо.")