asyncio 排障证据:任务、队列和取消状态怎么留
asyncio 排障证据任务、队列和取消状态怎么留asyncio 服务卡住时日志里常只有一个 timeout。要判断是事件循环被阻塞、连接池耗尽还是队列积压需要看任务的整个生命周期。先记录任务在哪等待为入口、队列、获取连接和外部调用建立阶段记录。异常保留类型与上下文取消单独处理不把 CancelledError 归为普通失败。抓现场要控制开销短时间启用 asyncio debug、任务栈或采样 profiler配合队列长度与 loop lag 指标。不要长期输出每个 await 的日志。同步阻塞函数移到线程或进程边界。超时后确认子任务确实结束。Semaphore 许可在异常路径释放。用最小请求复现固定并发数与依赖延迟逐步增加条件。修复后检查任务总数和队列能否回落不只看接口重新返回成功。异步排障最怕任务“消失”。创建、等待、取消和结束都有记录Delay 再趴键盘上也不至于把线索按没了。