dy-dashboard/vault/知识库/工作指南/训练记录/2026-07-08-计划预测缓存优化.md
2026-10-28 11:14:17 +08:00

1.2 KiB
Raw Blame History

2026-07-08 计划预测缓存优化

1. 计划预测强制刷新卡时间

旭东 → OpenClaw:

计划预测强制刷新卡时间这个能解决吗

OpenClaw 响应: 确认了问题是计划预测页面每次刷新(F5)都要等2-3秒。定位到两个根因:(1) Gunicorn开了4个worker,每个worker有独立进程内存缓存,请求打到不同worker就重新计算;(2) 加工厂库存、云仓库存、外仓库存、在途库存4个函数完全没做缓存,每次请求都查数据库。

旭东 → OpenClaw:

方案A

OpenClaw 响应: 实施了方案A(文件共享缓存),具体改动:

  • services/cache.py:RefreshableCache 改成内存+文件双缓存,所有 Gunicorn worker 共享同一份文件缓存(tmp_cache/),写入使用原子操作(临时文件 + os.replace)
  • services/inventory_calc.py:补齐4个缺失缓存函数(inv15、cloud_inv、ext_inv、transit)
  • services/forecast.py:全局配置 get_global_config() 改用 RefreshableCache
  • refresh_all_caches() 同时删除文件缓存,所有 worker 自动重建

效果:冷启动1.3s(之前3s),缓存命中后18ms。