欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-03-11 09:24:34
概述一个简易版的定时任务更新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

相关标签: redis