From 9b0980e349d256b2a1274ec4560ae0b18f968366 Mon Sep 17 00:00:00 2001 From: shishengliang Date: Tue, 22 Sep 2026 19:50:58 +0800 Subject: [PATCH] fix: refresh vehicle asset statistics every 5 seconds --- src/modules/assets/AssetsModule.tsx | 2 +- src/server/routes/vehicles/repository.test.ts | 4 ++-- src/server/routes/vehicles/repository.ts | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/modules/assets/AssetsModule.tsx b/src/modules/assets/AssetsModule.tsx index f96c26d..3bec638 100644 --- a/src/modules/assets/AssetsModule.tsx +++ b/src/modules/assets/AssetsModule.tsx @@ -167,7 +167,7 @@ export default function AssetsModule() { useEffect(() => { loadData(); - const interval = setInterval(loadData, 60 * 1000); + const interval = setInterval(loadData, 5 * 1000); return () => clearInterval(interval); }, [loadData]); diff --git a/src/server/routes/vehicles/repository.test.ts b/src/server/routes/vehicles/repository.test.ts index 623eba5..7676e0d 100644 --- a/src/server/routes/vehicles/repository.test.ts +++ b/src/server/routes/vehicles/repository.test.ts @@ -49,7 +49,7 @@ test('keeps all vehicle GET endpoints in their established order', () => { assert.doesNotMatch(source, /\bSELECT\b|pool\.query|MAIN_SQL/); }); -test('keeps the non-empty vehicle cache for less than 60 seconds', async () => { +test('keeps the non-empty vehicle cache for less than 5 seconds', async () => { let now = 100_000; const db = new FakeDatabase([[{ id: 'first' }], [{ id: 'second' }]]); const repository = new VehicleRepository( @@ -59,7 +59,7 @@ test('keeps the non-empty vehicle cache for less than 60 seconds', async () => { ); assert.deepEqual(await repository.getVehicles(), [vehicle('first')]); - now += 59_999; + now += 4_999; assert.deepEqual(await repository.getVehicles(), [vehicle('first')]); now += 1; assert.deepEqual(await repository.getVehicles(), [vehicle('second')]); diff --git a/src/server/routes/vehicles/repository.ts b/src/server/routes/vehicles/repository.ts index 46d42c5..a883cd0 100644 --- a/src/server/routes/vehicles/repository.ts +++ b/src/server/routes/vehicles/repository.ts @@ -278,7 +278,7 @@ export const FLOW_STATS_SQL = ` ORDER BY flow.event_time DESC, flow.id DESC `; -const CACHE_TTL = 60 * 1000; +const CACHE_TTL = 5 * 1000; export class VehicleRepository { private cachedVehicles: Vehicle[] = [];