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

22 lines
1.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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。