From 5d10d60dcbe9d10e3ea7421f782b00a199835b48 Mon Sep 17 00:00:00 2001 From: "2569718930@qq.com" <2569718930@qq.com> Date: Tue, 26 May 2026 08:13:37 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BC=93=E5=AD=98=20TTL=20=E5=AF=B9=E9=BD=90?= =?UTF-8?q?=EF=BC=9A=E5=9B=BE=E8=A1=A8=E5=86=85=E5=AD=98/=E4=BC=9A?= =?UTF-8?q?=E8=AF=9D=E7=BC=93=E5=AD=98=E7=BB=9F=E4=B8=80=E9=99=8D=E4=B8=BA?= =?UTF-8?q?=205=20=E5=88=86=E9=92=9F=EF=BC=88metar=EF=BC=89=EF=BC=8C?= =?UTF-8?q?=E4=B8=8E=E5=A4=A7=E8=A1=A8=E5=88=B7=E6=96=B0=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - HOURLY_CACHE_TTL_MS: model(30min) → metar(5min) - SESSION_CACHE_TTL_MS: 10min → metar(5min) - 消除大表已刷新但折线图仍显示旧温度的时差问题 --- .../dashboard/scan-terminal/LiveTemperatureThresholdChart.tsx | 4 ++-- .../scan-terminal/__tests__/refreshCadencePolicy.test.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/frontend/components/dashboard/scan-terminal/LiveTemperatureThresholdChart.tsx b/frontend/components/dashboard/scan-terminal/LiveTemperatureThresholdChart.tsx index 30f98d2e..c7aa24de 100644 --- a/frontend/components/dashboard/scan-terminal/LiveTemperatureThresholdChart.tsx +++ b/frontend/components/dashboard/scan-terminal/LiveTemperatureThresholdChart.tsx @@ -192,7 +192,7 @@ type RunwayHistorySeries = { }; const MAX_OBS_POINTS = 1440; -const HOURLY_CACHE_TTL_MS = DASHBOARD_REFRESH_POLICY_MS.model; +const HOURLY_CACHE_TTL_MS = DASHBOARD_REFRESH_POLICY_MS.metar; const FULL_DAY_SLOT_MINUTES = 30; const FULL_DAY_SLOTS = 48; const SLOT_INTERVAL_MS = FULL_DAY_SLOT_MINUTES * 60 * 1000; @@ -201,7 +201,7 @@ const _hourlyRequestCache = new Map>(); const RUNWAY_LINE_COLORS = ["#00897b", "#d97706", "#7c3aed", "#0891b2", "#ea580c", "#64748b"]; const SESSION_CACHE_PREFIX = "polyweather_city_detail_v1:"; -const SESSION_CACHE_TTL_MS = 10 * 60 * 1000; // 10 minutes cache for session storage +const SESSION_CACHE_TTL_MS = DASHBOARD_REFRESH_POLICY_MS.metar; function readSessionCache(city: string): { ts: number; data: HourlyForecast } | null { if (typeof window === "undefined") return null; diff --git a/frontend/components/dashboard/scan-terminal/__tests__/refreshCadencePolicy.test.ts b/frontend/components/dashboard/scan-terminal/__tests__/refreshCadencePolicy.test.ts index 465824c0..c39f5fe4 100644 --- a/frontend/components/dashboard/scan-terminal/__tests__/refreshCadencePolicy.test.ts +++ b/frontend/components/dashboard/scan-terminal/__tests__/refreshCadencePolicy.test.ts @@ -33,10 +33,10 @@ export function runTests() { "scan list local cache should use the shared 5-minute row cadence", ); assert( - chartSource.includes("DASHBOARD_REFRESH_POLICY_MS.model") && + chartSource.includes("DASHBOARD_REFRESH_POLICY_MS.metar") && !chartSource.includes("setInterval(") && !chartSource.includes("window.setInterval"), - "selected city detail chart should be on-demand and use model-layer cache instead of 60-second polling", + "selected city detail chart cache should align with 5-minute scan/metar cadence", ); assert( chartSource.includes("_hourlyRequestCache") &&