You've already forked FrameTour-BE
refactor(statistics): 重构应用统计漏斗服务的Redis缓存逻辑
- 移除固定的Redis缓存key,改为包含日期维度的动态key - 修复日期范围检查逻辑中的时间顺序问题 - 统一多处相同的日期范围条件判断代码 - 移除实时模式下的数据持久化操作以避免缓存污染
This commit is contained in:
@@ -93,8 +93,8 @@ public class ScenicStatsTask {
|
||||
// 写入数据库(REPLACE INTO 会自动更新已存在的记录)
|
||||
statisticsMapper.insertStat(scenicId, startTime, data);
|
||||
|
||||
// 删除该景区的缓存,确保下次查询时获取最新数据
|
||||
invalidateStatisticsCache(scenicId);
|
||||
// 删除该景区该日期的缓存,确保下次查询时获取最新数据
|
||||
invalidateStatisticsCache(scenicId, startTime);
|
||||
} catch (Exception e) {
|
||||
log.error("统计景区 {} 在日期 {} 的数据时发生错误", scenic.getId(), DateUtil.formatDate(startTime), e);
|
||||
}
|
||||
@@ -109,9 +109,12 @@ public class ScenicStatsTask {
|
||||
/**
|
||||
* 删除景区统计缓存
|
||||
* @param scenicId 景区ID
|
||||
* @param date 统计日期
|
||||
*/
|
||||
private void invalidateStatisticsCache(Long scenicId) {
|
||||
String redisKey = "statistics:tmp_cache:" + scenicId;
|
||||
private void invalidateStatisticsCache(Long scenicId, Date date) {
|
||||
String redisKey = String.format("statistics:tmp_cache:%s:%s",
|
||||
scenicId,
|
||||
DateUtil.formatDate(date));
|
||||
redisTemplate.delete(redisKey);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user