Files
X-Financial/document/development/2026-07-18/dev-logs/bugs/uvicorn-reload-log-feedback-loop.md
2026-07-20 10:31:00 +08:00

1.5 KiB
Raw Blame History

Uvicorn 热重载监听日志形成反馈循环

日期2026-07-18 文档路径document/development/2026-07-18/dev-logs/bugs/uvicorn-reload-log-feedback-loop.md

修复记录

  • 15:54记录 bug 修复:开发模式的 Uvicorn 热重载监听整个服务目录,应用写入日志会再次触发 reload 检测日志,形成持续反馈循环。
    • Git 提交检查:git fetch --all --prune 成功upstream origin/main 无新提交;本地 ahead 19 条,最新为 07241b46 fix(docker): manage local postgres in default compose787bc3a4 feat(platform): close AI expense value loop242d68c3 feat(approval): add task workflow and waiver decisions,另有 16 条。
    • 原因:--reload 未限定源码目录,server/logs/app.log 的每次追加都被 watchfiles 识别为变更,并产生新的日志。
    • 修改:热重载分支增加 --reload-dir src,只监听后端源码;非热重载与多 worker 启动参数保持不变;新增两种启动分支的脚本回归测试。
    • 操作:在容器内执行 Shell 语法检查、启动依赖测试、后端联合回归、Ruff 和差异格式检查;为避免自动执行待确认的数据库迁移,本轮未重启主容器。
    • 验证:脚本语法通过,启动脚本定向测试通过,后端联合回归 165 passedRuff 与 git diff --check 通过;代码将在下一次经确认的安全重建后生效。
    • 影响:生效后日志文件写入不再触发热重载扫描,可停止无效日志增长和持续 CPU/IO 消耗。