diff --git a/backend/src/main/java/gc/mda/kcg/domain/fleet/GroupPolygonService.java b/backend/src/main/java/gc/mda/kcg/domain/fleet/GroupPolygonService.java index eb9f289..6e3790f 100644 --- a/backend/src/main/java/gc/mda/kcg/domain/fleet/GroupPolygonService.java +++ b/backend/src/main/java/gc/mda/kcg/domain/fleet/GroupPolygonService.java @@ -24,6 +24,9 @@ public class GroupPolygonService { private final CacheManager cacheManager; private final ObjectMapper objectMapper; + private static final long CACHE_TTL_MS = 5 * 60_000L; // 5분 + private volatile long lastCacheTime = 0; + private static final String LATEST_GROUPS_SQL = """ SELECT group_type, group_key, group_label, snapshot_time, ST_AsGeoJSON(polygon) AS polygon_geojson, @@ -61,7 +64,9 @@ public class GroupPolygonService { @SuppressWarnings("unchecked") public List getLatestGroups() { Cache cache = cacheManager.getCache(CacheConfig.GROUP_POLYGONS); - if (cache != null) { + long now = System.currentTimeMillis(); + + if (cache != null && (now - lastCacheTime) < CACHE_TTL_MS) { Cache.ValueWrapper wrapper = cache.get("data"); if (wrapper != null) { return (List) wrapper.get(); @@ -72,6 +77,7 @@ public class GroupPolygonService { if (cache != null) { cache.put("data", results); + lastCacheTime = now; } return results; }