《AI Agent 工程实战》16.3 配置注入、健康检查与优雅退出
16.2 把服务编排起来了,但容器编排还有三件「看不见却致命」的事:配置怎么注入、健康检查怎么区分 liveness 与 readiness、收到 SIGTERM 后怎么优雅退出。本节讲清用环境变量注入配置、两条健康线各自的取舍、以及「停止接新请求→等在途 run 收尾→关连接池→退出」四步。用 uvicorn 0.54.0 + lifespan 真发 SIGTERM,贴出完整日志序列与参数表。
tag
16.2 把服务编排起来了,但容器编排还有三件「看不见却致命」的事:配置怎么注入、健康检查怎么区分 liveness 与 readiness、收到 SIGTERM 后怎么优雅退出。本节讲清用环境变量注入配置、两条健康线各自的取舍、以及「停止接新请求→等在途 run 收尾→关连接池→退出」四步。用 uvicorn 0.54.0 + lifespan 真发 SIGTERM,贴出完整日志序列与参数表。
前两节让 context 能取消,但取消信号从哪来?本节把信号处理接上:用 signal.Notify 与 signal.NotifyContext 捕获 Ctrl-C 和 SIGTERM,讲清「中断」与「排空」两种停止语义,加二次信号强杀与超时兜底,最后给出 TaskAPI 完整的 main。
信号处理:让你的应用优雅地退出 你有没有遇到过这样的情况: - 你的应用收到 信号(比如 Kubernetes 要重启你的 Pod),但应用直接退出了,没有做任何清理工作 这些问题都可以通过 优雅退出 (Graceful Shutdown)来解决。