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):