From a85d6b0ead7ff4227312549db31bcc81e2b16449 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Thu, 5 Feb 2026 01:05:56 +0800 Subject: [PATCH] =?UTF-8?q?feat(statistics):=20=E6=B7=BB=E5=8A=A0=E5=BD=93?= =?UTF-8?q?=E6=97=A5=E6=95=B0=E6=8D=AERedis=E7=BC=93=E5=AD=98=E5=B9=B6?= =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1=E6=97=B6?= =?UTF-8?q?=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在AppStatisticsServiceImpl中实现当日数据的Redis缓存机制 - 仅对实时查询且查询日期为当天的数据进行缓存 - 设置缓存时间为60秒以减少实时查询压力 - 将历史数据查询与实时数据查询分离 - 调整ScenicStatsTask定时任务执行时间 - 添加每日凌晨3点执行的任务配置 - 新增每天0点1分执行的统计任务调度 --- .../service/mobile/impl/AppStatisticsServiceImpl.java | 9 +++++++++ src/main/java/com/ycwl/basic/task/ScenicStatsTask.java | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/ycwl/basic/service/mobile/impl/AppStatisticsServiceImpl.java b/src/main/java/com/ycwl/basic/service/mobile/impl/AppStatisticsServiceImpl.java index a4ae4a8d..199b4707 100644 --- a/src/main/java/com/ycwl/basic/service/mobile/impl/AppStatisticsServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/mobile/impl/AppStatisticsServiceImpl.java @@ -273,6 +273,15 @@ public class AppStatisticsServiceImpl implements AppStatisticsService { vo.setPayOfOrderAmount(payOfOrderAmount.setScale(2, RoundingMode.HALF_UP)); vo.setRefundOfOrderNum(refundOfOrderNum); vo.setRefundOfOrderAmount(refundOfOrderAmount.setScale(2, RoundingMode.HALF_UP)); + + // 仅对当天数据启用 Redis 缓存(短期缓存,减少实时查询压力) + // 历史数据已在 scenic_stats 表中持久化,不需要 Redis 缓存 + if (!query.isRealtime() && query.getStartTime() != null) { + // 判断查询日期是否为今天 + if (DateUtil.isSameDay(query.getStartTime(), new Date())) { + redisTemplate.opsForValue().set(redisKey, JacksonUtil.toJSONString(vo), 60, TimeUnit.SECONDS); + } + } return ApiResponse.success(vo); } finally { lock.unlock(); diff --git a/src/main/java/com/ycwl/basic/task/ScenicStatsTask.java b/src/main/java/com/ycwl/basic/task/ScenicStatsTask.java index 88db088c..ba34d63a 100644 --- a/src/main/java/com/ycwl/basic/task/ScenicStatsTask.java +++ b/src/main/java/com/ycwl/basic/task/ScenicStatsTask.java @@ -60,7 +60,8 @@ public class ScenicStatsTask { }); } } - @Scheduled(cron = "0 0 2 * * *") + @Scheduled(cron = "0 0 3 * * *") + @Scheduled(cron = "0 1 0 * * *") public void countScenicStats() { log.info("开始执行景区统计任务,统计前7天至昨天的数据");