cron表达式@Scheduled(cron = "0 0 0 * * ?")这个时间表示凌晨12点整点
/**
* 定时器 【每日凌晨统计用户当日总访问数】
* // 每天凌晨12点执行 每天凌晨的0时0分0秒执行
*/
@Scheduled(cron = "0 0 0 * * ?")
@DependsOn("visitorTodayNumber") // 依赖visitorTodayNumber方法
public void userVisitorCountNumber() {
service.userVisitorCountNumber();
Result.buildOk("执行成功");
}
/**
* 定时器 【每日凌晨统计用户当日总注册人数】
* // 每天凌晨12点执行 每天凌晨的0时0分0秒执行
*/
@Scheduled(cron = "0 0 0 * * ?")
public void userCountRegisterNumber() {
service.userCountRegisterNumber();
Result.buildOk("执行成功");
}
这里获取了当前日期,cron表达式是凌晨12点整点执行,这个日期是记录得是当天的吗?测试过,就是数据库没记录到,在这个时间段里应该有数据的,但是存入数据库为0,也就是这个list没有数据,但是看数据库是有当天时间的,第二天看并没有
StUserRecord record = new StUserRecord();
// 获取当前日期用户的总访问人数
// 获取今日访问人
LambdaQueryWrapper<StVisitorNumber> wrapper = new LambdaQueryWrapper<>();
LocalDateTime now = LocalDateTime.now();
LocalDateTime startOfToday = now.toLocalDate().atStartOfDay();
LocalDateTime endOfToday = startOfToday.plusDays(1).minusSeconds(1);
wrapper.between(StVisitorNumber::getDate, startOfToday,endOfToday);
List<StVisitorNumber> list = stVisitorNumberService.list(wrapper);
record.setNumber(list.size());
record.setDay(DataUtil.getToday());
record.setType("0");
baseMapper.insert(record);