From 482c0fac8b2da8bef5c8b4e33e4409eab5970fbc Mon Sep 17 00:00:00 2001 From: yumoqing Date: Wed, 22 Jul 2026 13:39:37 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=5Fget=5Frealtime=5Fsnapshot=E5=8A=A0?= =?UTF-8?q?=E8=AF=B7=E6=B1=82=E7=BA=A7=E7=BC=93=E5=AD=98,=E4=B8=80?= =?UTF-8?q?=E6=AC=A1=E9=A1=B5=E9=9D=A2=E6=B8=B2=E6=9F=93=E5=8F=AA=E6=9F=A5?= =?UTF-8?q?=E4=B8=80=E6=AC=A1DB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sage_datamart/init.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/sage_datamart/init.py b/sage_datamart/init.py index f7ddbb3..b55f344 100644 --- a/sage_datamart/init.py +++ b/sage_datamart/init.py @@ -250,12 +250,17 @@ async def api_distributor_customers(request): # ── Jinja2 模板函数(实时,角色感知)── async def _get_realtime_snapshot(request): - """一次查询返回全部实时指标(含角色),各j2函数复用同一结果""" + """一次查询返回全部实时指标(含角色),同一请求内缓存复用""" + cache_key = '_sage_datamart_rt_cache' + if cache_key in request: + return request[cache_key] env = request._run_ns scope, org_filter = await _resolve_view(request) today = env.curDateString() async with get_sor_context(env, MODULE_NAME) as sor: - return await get_realtime_stats(sor, today, scope, org_filter) + result = await get_realtime_stats(sor, today, scope, org_filter) + request[cache_key] = result + return result async def j2_realtime_calls(request):