22 lines
1.2 KiB
Markdown
22 lines
1.2 KiB
Markdown
# 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。
|