Browse Source

graph cache 2.5

master
gsd 1 month ago
parent
commit
fd281ede78
  1. 2
      src/main/java/app/configurations/CacheConfig.java
  2. 6
      src/main/java/app/services/db/GraphService.java
  3. 4
      src/main/java/app/updates/OnlineUpdater.java

2
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");
}
}

6
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<PerPeriodStatistic> 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<VipPerPeriodStatistic> 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 " +

4
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<StatsOfPeakOfPerFiveMinutes> 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<StatsOfPeakOfDay> getPeakOfDays(String server_id, int limit, String cacheKey) {
List<MaxPeakOfDay> maxPeakOfDays = getMaxPeakOfDays(server_id, limit);
List<AvgPeakOfDay> avgPeakOfDays = getAvgPeakOfDays(server_id, limit);

Loading…
Cancel
Save