顾乔芝士网

持续更新的前后端开发技术栈

Springboot中定时任务@Scheduled(Cron)用法

Spring框架或其他支持Cron表达式的任务调度系统中@Scheduled(cron = "0 7 0/2 * * ?")表示什么意思呢?





@Scheduled(cron = "0 7 0/2 * * ?")
    public void selectPush() {
       logger.info("==============info获取=========================");
       pushService.initInfo(queryPriceUrlMap);
       logger.info("==============info获取=========================");

    }

这个Cron表达式 0 7 0/2 * * ? 的意思是:在每天的每隔2小时的第7分钟(即0:07, 2:07, 4:07, 6:07, 8:07, 10:07, 12:07, 14:07, 16:07, 18:07, 20:07, 22:07)触发任务。

详细知识点:

@Scheduled(cron = "0 7 0/2 * * ?") 是一个使用Cron表达式的定时任务注解,通常用在Spring框架或其他支持Cron表达式的任务调度系统中。这个表达式定义了任务执行的时间规则。

Cron表达式由六个或七个空格分隔的时间字段组成,每个字段代表一个时间单位。这些字段通常代表:

  1. 秒(0-59)
  2. 分钟(0-59)
  3. 小时(0-23)
  4. 日期(1-31)
  5. 月份(1-12 或 JAN-DEC)
  6. 星期(1-7 或 SUN-SAT)
  7. 年份(可选字段)

对于你给出的表达式 0 7 0/2 * * ?,它的含义如下:

  • 0 秒:表示在每分钟的第0秒触发。
  • 7 分钟:表示在每小时的第7分钟触发。
  • 0/2 小时:表示从0点开始,每隔2小时触发一次。所以,它会在0点、2点、4点、6点、8点、10点、12点、14点、16点、18点、20点和22点的第7分钟触发。
  • * 日期:表示每天。
  • * 月份:表示每月。
  • ? 星期:在日期和星期这两个字段中,至少有一个需要被设置为?,表示不指定值。在这里,?表示不指定具体的星期几,因为日期字段已经被设置为每天了。

综上所述,这个Cron表达式 0 7 0/2 * * ? 的意思是:在每天的每隔2小时的第7分钟(即0:07, 2:07, 4:07, 6:07, 8:07, 10:07, 12:07, 14:07, 16:07, 18:07, 20:07, 22:07)触发任务

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言