Ограничить ожидание корутины можно через await asyncio.waitfor(coro(), timeout=5). В Python 3.11+ доступен также контекстный менеджер asyncio.timeout(5).
Как установить таймаут на выполнение одной корутины?
Ограничить ожидание корутины можно через await asyncio.waitfor(coro(), timeout=5). В Python 3.11+ доступен также контекстный менеджер asyncio.timeout(5).
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Ограничить ожидание корутины можно через await asyncio.wait_for(coro(), timeout=5). В Python 3.11+ доступен также контекстный менеджер asyncio.timeout(5).
По истечении срока возникает TimeoutError; отмена кооперативна, очистка может продлить ожидание. Блокирующий код внутри корутины мешает своевременному срабатыванию таймера. Таймауты asyncio.