Spring Task 定时方法怎么写?Cron表达式精讲

Spring Task 定时方法怎么写?Cron表达式精讲

🌈你好呀!我是 山顶风景独好
💝欢迎来到我的博客,很高兴能够在这里和您见面!
💝希望您在这里可以感受到一份轻松愉快的氛围!
💝不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
🚀 欢迎一起踏上探险之旅,挖掘无限可能,共同成长!

一、导入maven坐标(已存在,不需要操作)

二、启动类添加注解@EnableScheduling开启任务调度

@SpringBootApplication
@EnableScheduling
public class SpringBootTest4Application {
    public static void main(String[] args) {
        SpringApplication.run(SpringBootTest4Application.class, args);
    }
}

三、自定义定时任务类

package com.example.springboottest4.task;

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.util.Date;

@Component
public class MyTask {
    //cron表达式
    @Scheduled(cron = "0/5 * * * * ?")//每五秒执行一次
    //方法名不做限制,任意写
    public void executeTask(){
        //这里写处理逻辑...
        System.out.println(new Date());
    }
}

四、Cron表达式精讲:

Cron 表达式在 Spring Task 中用于定义定时任务的执行时间。它是一个强大的工具,允许你按照特定的模式(如每天、每小时、每周几的某个时间等)来执行任务。

一个 Cron 表达式由 6 或 7 个字段组成,由空格分隔。Spring Task 支持的 Cron 表达式字段如下:

[秒] [分] [小时] [日] [月] [星期] [年(可选)]

每个字段都代表一个时间单位,并且可以使用特定的符号来定义更复杂的模式。

以下是每个字段及其支持的符号的详细解释:

1. 秒 (0-59)

  • *:表示任意值。例如,在秒字段中,它表示“每秒”。
  • ,:表示列举值。例如,10,20,30 表示第 10 秒、第 20 秒和第 30 秒。
  • -:表示范围。例如,10-20 表示从第 10 秒到第 20 秒(包括两端)。
  • /:表示递增。例如,0/15 表示从第 0 秒开始,每 15 秒一次。

2. 分 (0-59) 与秒字段相同。

3. 小时 (0-23) 与秒字段相同。

4. 日 (1-31)

  • ?:在日字段中,它表示不指定值。当需要在月或星期字段中指定值时,可以在日字段中使用 ?

  • L:表示月的最后一天。

  • W:表示离指定日期最近的工作日。

  • #:用于指定月的第几个星期几。例如,6#3 表示该月的第三个星期五。

5. 月 (1-12 或 JAN-DEC)

  • 可以使用月份的数字或缩写来表示。

  • ,-/ 符号的用法与秒字段相同。

6. 星期 (0-7 或 SUN-SAT)

  • 07 都表示星期日。

  • 可以使用星期的数字或缩写来表示。

  • 如果同时指定了月和星期字段,那么任务将在两个字段都匹配的时候执行。

7. 年 (可选)

  • 如果省略,则表示不指定年份。

  • 可以使用年份的数字来表示。
    示例:

  • 0 0 12 * * ?:每天中午 12 点执行。
  • 0 15 10 ? * *:每天上午 10:15 执行。
  • 0 0 0 25 12 ?:每年 12 月 25 日午夜执行。
  • 0 15 10 ? * MON-FRI:每周一到周五的上午 10:15 执行。

记住,Spring Task 的 Cron 表达式不支持秒字段,因此它实际上是 5 个字段(而不是标准的 6 或 7 个字段)。

  • 15
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值