From 71cec0dc358e8b2c56b4dfb6f06f334a4fa7af21 Mon Sep 17 00:00:00 2001 From: shy3130 <415333856@qq.com> Date: Wed, 9 Sep 2026 16:10:03 +0800 Subject: [PATCH] =?UTF-8?q?ops(strategy):=20clear=5Fcache=20=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E8=B0=83=E7=94=A8=E9=93=BE=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 策略页依赖 strategy_cache 秒加载, 缓存被清空即整页回退到全量重算。 今日线上排查: 缓存在扩展表拉取后 12ms 消失, 但三个已知调用方均无 触发记录, 静态分析无法定位。clear_cache 打 WARNING 附最近 5 帧调用 链, 此类问题不再依赖复现现场。 --- backend/app/services/strategy_cache.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/backend/app/services/strategy_cache.py b/backend/app/services/strategy_cache.py index 1252697..5d319d1 100644 --- a/backend/app/services/strategy_cache.py +++ b/backend/app/services/strategy_cache.py @@ -75,6 +75,15 @@ def read_cache(data_dir: Path) -> dict | None: def clear_cache(data_dir: Path) -> None: """删除策略结果缓存;策略代码 reload 后避免继续展示旧公式结果。""" + import traceback + + # 运维可见性: 策略页依赖本缓存秒加载, 被清空即整页回退到全量重算。 + # 记录调用链 (最近 5 帧), 排查"缓存莫名消失"类问题不需要复现现场。 + frames = traceback.extract_stack()[:-1] + chain = " <- ".join( + f"{f.filename.rsplit('/', 1)[-1]}:{f.lineno}:{f.name}" for f in frames[-5:] + ) + logger.warning("策略缓存被清除, 调用链: %s", chain) path = _cache_path(data_dir) with _file_lock: path.unlink(missing_ok=True)