定时任务去更新Redis中的数据

概述

一个简易版的定时任务更新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

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐