From fd281ede785f64a5f832392dee5f34ef6c727896 Mon Sep 17 00:00:00 2001 From: gsd Date: Mon, 11 May 2026 14:11:47 +0300 Subject: [PATCH] graph cache 2.5 --- src/main/java/app/configurations/CacheConfig.java | 2 +- src/main/java/app/services/db/GraphService.java | 6 +++--- src/main/java/app/updates/OnlineUpdater.java | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/app/configurations/CacheConfig.java b/src/main/java/app/configurations/CacheConfig.java index d1e5148..c194eb7 100644 --- a/src/main/java/app/configurations/CacheConfig.java +++ b/src/main/java/app/configurations/CacheConfig.java @@ -11,6 +11,6 @@ import org.springframework.context.annotation.Configuration; public class CacheConfig { @Bean public CacheManager cacheManager() { - return new ConcurrentMapCacheManager("steam_data", "steam_search_data", "graphs"); + return new ConcurrentMapCacheManager("steam_data", "steam_search_data", "graphs.usertime", "graphs.vip", "graphs.online"); } } diff --git a/src/main/java/app/services/db/GraphService.java b/src/main/java/app/services/db/GraphService.java index d757961..5792581 100644 --- a/src/main/java/app/services/db/GraphService.java +++ b/src/main/java/app/services/db/GraphService.java @@ -29,7 +29,7 @@ public class GraphService { private final static Logger logger = LoggerFactory.getLogger(GraphService.class); @Scheduled(cron = "@hourly") - @CacheEvict(value = "graphs", allEntries = true) + @CacheEvict(value = {"graphs.usertime", "graphs.vip", "graphs.online"}, allEntries = true) public void purgeCache() { logger.info("Cache clean"); } @@ -43,7 +43,7 @@ public class GraphService { * @param searchFilter * @return */ - @Cacheable(value = "graphs", key = "#searchFilter.cacheKey") + @Cacheable(value = "graphs.usertime", key = "#searchFilter.cacheKey") //"graphs.usertime", "graphs.vip" public List getUsertimeOnPeriod(SearchFilter searchFilter) { final String sql = "select date_trunc(:delta, timestamp) AS ts, :delta as period, sum(connect_duration) as value, srv_id from user_connections " + "where (:account_ids_empty = true or account_id in (:account_ids)) and connect_duration != 0 and timestamp between :begindate and :enddate " + @@ -74,7 +74,7 @@ public class GraphService { } } - @Cacheable(value = "graphs", key = "#searchFilter.cacheKey") + @Cacheable(value = "graphs.vip", key = "#searchFilter.cacheKey") public List getVipOnPeriod(SearchFilter searchFilter) { final String sql = "select date_trunc(:delta, timestamp) AS ts, :delta as period, count(*) as value, givemethod, amount from gived_vip " + "where (:account_ids_empty = true or steam2 in (:account_ids)) and givemethod != 4 and timestamp between :begindate and :enddate " + diff --git a/src/main/java/app/updates/OnlineUpdater.java b/src/main/java/app/updates/OnlineUpdater.java index 4b3dd1b..757d3d4 100644 --- a/src/main/java/app/updates/OnlineUpdater.java +++ b/src/main/java/app/updates/OnlineUpdater.java @@ -132,7 +132,7 @@ GROUP BY ts, server_id) as s group by s.ts order by s.ts desc limit ? (rs, rowNum) -> new AvgPeakOfDay(rs)); } - @Cacheable(value = "graphs", key = "#cacheKey") + @Cacheable(value = "graphs.online", key = "#cacheKey") public List getMaxPeakOfFiveMinutes(String server_id, int limit, Integer minutes, String cacheKey) { long utime = LocalDate.now().minusDays(limit -1).toEpochSecond(LocalTime.MIN, ZoneOffset.ofHours(3)); return jdbcTemplate_ro.query("select round(sum(sub.player_count))::int as player_count, sub.ts as fulldate from ("+ @@ -147,7 +147,7 @@ GROUP BY ts, server_id) as s group by s.ts order by s.ts desc limit ? (rs, rowNum) -> new StatsOfPeakOfPerFiveMinutes(rs)); } - @Cacheable(value = "graphs", key = "#cacheKey") + @Cacheable(value = "graphs.online", key = "#cacheKey") public List getPeakOfDays(String server_id, int limit, String cacheKey) { List maxPeakOfDays = getMaxPeakOfDays(server_id, limit); List avgPeakOfDays = getAvgPeakOfDays(server_id, limit);