Check
Как корректно обрабатывать отмену задач в `asyncio` (например, при таймауте)? Какие исключения возникают и что важно не забыть при очистке ресурсов?

Отмена задач asyncio

Ответ 1 / 1

Отмена задачи в `asyncio` делается через `task.cancel()`. В корутине при этом поднимается `asyncio.CancelledError`, который нужно либо пробросить, либо корректно обработать. Пример: ```python import asyncio async def worker(): try: await asyncio.sleep(10) except asyncio.CancelledError: # очистка ресурсов print('cancelled') raise async def main(): task = asyncio.create_task(worker()) await asyncio.sleep(1) task.cancel() try: await task except asyncio.CancelledError: pass ```