定时任务去更新Redis中的数据
程序员文章站
2022-06-23 11:22:52
概述一个简易版的定时任务更新Redis中的数据demo@Scheduled(fixedRate = 10000) public void schedule(){ //定时更新当月的排行榜数据 LocalDate localDate = LocalDate.now(); ExpendFrontParam expendFrontParam = new ExpendFrontParam(); expendFrontParam.setA...
概述
一个简易版的定时任务更新Redis中的数据
demo
@Scheduled(cron = "0 48 15 * * ?")
public void schedule(){
//定时更新当月的排行榜数据
LocalDate localDate = LocalDate.now();
ExpendFrontParam expendFrontParam = new ExpendFrontParam();
expendFrontParam.setAcct(localDate);
//不管存不存在,都去查一次数据库
List<Expend> expendList = iExpendService.findRankPay(expendFrontParam);
redisTemplate.opsForValue().set("rank_pay_" + Expend.class.getSimpleName(), expendList);
System.out.println("scheduled");
}
需要注意一点的cron = “0 48 15 * * ?“是每天的15:48分统计一次,如果为”* 48 15 * * ?”,则表示每秒都会统计一次,然后15:48也会统计一次,但是也就不符合每天15:48分统计一次的设计了,下面补充一下corn的只是把
也可以使用Corn表达式,
它有6个域,
Seconds: 0-59,0秒执行,30秒执行
Minutes: 0-59,
Hours:0-23
DayofMonth: 1-31的整数,每月的第几天
Month:1-12
DayofWeek:星期几执行,1-7,1代表周日,2代表星期一
?代表某个域放弃指定规则,只有一个?号,
-表示范围,5-20,秒为0,表示5分钟执行一次,20分钟执行一次
/表示起始时间开始触发, 5/20,表示第5分钟执行,过20分钟执行一次
比如:
0 0 10,14,16 * * ? 每天上午10点,下午2点,4点
0 0/30 9-17 ? 朝九晚五每半小时
0 0 12 ?* WED 每个星期三12点触发
0 15 10 ? * *
本文地址:https://blog.csdn.net/weixin_40598838/article/details/110954474