Перейти к содержимому
13 / 17

Как работает отмена задач: CancelledError, asyncio.shield и asyncio.timeout?

Отмена задачи в asyncio = бросок CancelledError в корутину при следующем await. Корутина может перехватить и сделать cleanup, но обязана пробросить ошибку дальше, иначе отмена ломается. asyncio.shield защищает корутину от внешней отмены. asyncio.timeout (3.11+) — context manager, отменяющий блок при превышении времени.