如何使asyncio任务忽略CancelledError
答
您可以使用asyncio.Task.all_tasks()
获取所有正在运行的任务。要完成任务,您应该调用cancel()
并等待任务完成(抑制CancelledError
)。完整的解决方案:
pending = asyncio.Task.all_tasks()
for task in pending:
task.cancel()
with suppress(asyncio.CancelledError):
await task