2
如果客戶端關閉連接asyncio任務接收CancelledError
並且請求處理停止。有什麼辦法可以完成所有任務並忽略連接錯誤?如何使asyncio任務忽略CancelledError
如果客戶端關閉連接asyncio任務接收CancelledError
並且請求處理停止。有什麼辦法可以完成所有任務並忽略連接錯誤?如何使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