Spring Boot 入门-定时任务

Spring Boot提供了方便而强大的定时任务功能,允许你在预定的时间间隔或固定时间执行代码。这对于需要定期执行任务的应用程序非常有用,比如数据清理、报表生成、邮件发送等。

步骤1:添加依赖


    org.springframework.boot
    spring-boot-starter-quartz

步骤2:创建定时任务

在Spring Boot中,你可以使用@Scheduled注解来创建定时任务。这个注解可以应用于方法上,用于指定方法的执行时间。

@Component
public class MyScheduledTasks {
    @Scheduled(fixedRate = 5000) // 每5秒执行一次
    public void task1() {
        System.out.println("定时任务1 - 每5秒执行一次");
    }
    @Scheduled(cron = "0 0 0 * * ?") // 每天凌晨执行
    public void task2() {
        System.out.println("定时任务2 - 每天凌晨执行");
    }
    // 更多定时任务方法...
}

在上述示例中,我们创建了一个名为MyScheduledTasks的定时任务类,并在其中定义了两个定时任务方法:task1()和task2()。

task1()方法使用@Scheduled(fixedRate = 5000)注解,表示每隔5秒执行一次。

task2()方法使用@Scheduled(cron = “0 0 0 * * ?”)注解,表示每天凌晨执行。

你可以根据自己的需求,使用不同的注解和cron表达式来定义定时任务的执行时间

步骤3:启用定时任务

在Spring Boot中,要启用定时任务,需要在启动类上添加@EnableScheduling注解。

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

cron 表达式

Cron表达式是一种用于指定定时任务执行时间的字符串格式。它由6个或7个字段组成,每个字段表示一个时间单位或条件。以下是Cron表达式的详细说明:

┌───────────── 秒 (0 - 59)
│ ┌───────────── 分钟 (0 - 59)
│ │ ┌───────────── 小时 (0 - 23)
│ │ │ ┌───────────── 日 (1 - 31)
│ │ │ │ ┌───────────── 月 (1 - 12 或 JAN-DEC)
│ │ │ │ │ ┌───────────── 星期 (0 - 7 或 SUN-SAT,其中 0 和 7 都可以表示周日)
│ │ │ │ │ │
│ │ │ │ │ │
* * * * * *

下面是各个字段的取值范围和使用方式:

秒(Seconds):取值范围为0-59。

分钟(Minutes):取值范围为0-59。

小时(Hours):取值范围为0-23。

日(Day of month):取值范围为1-31。

月(Month):取值范围为1-12,或者可以使用英文缩写 JAN-DEC。

星期(Day of week):取值范围为0-7,其中0和7都可以表示周日,或者可以使用英文缩写 SUN-SAT。

年(Year):可选字段,取值范围为1970-2099,或者可以使用“*”表示任意年份。

Cron表达式支持的特殊字符:

星号(*):表示任意取值。例如,*在分钟字段表示每分钟都匹配。

逗号(,):用于指定多个值。例如,1,3,5在小时字段表示1点、3点和5点都匹配。

减号(-):用于指定一个范围。例如,10-15在分钟字段表示从10到15分钟都匹配。

斜杠(/):用于指定步长。例如,*/5在分钟字段表示每隔5分钟都匹配。

问号(?):在日和星期字段中,可以使用问号表示不指定具体的值,可以用于避免冲突。通常,日和星期字段只能指定一个具体的值,要么是一个具体的数字,要么是一个*。

井号(#):用于指定月份中的第几个星期几。例如,2#1表示每个月的第一个星期一。

下面是一些示例Cron表达式:

0 * * * * *:每分钟的第0秒执行。

0 0/5 * * * *:每隔5分钟执行一次。

0 0 8-10 * * *:每天的8点、9点和10点整点执行。

0 0 8,10 * * *:每天的8点和10点整点执行。

0 0/30 9-17 * * MON-FRI:周一至周五的9点到17点之间,每隔30分钟执行一次。

请根据自己的需求和任务调度要求,编写符合要求的Cron表达式来指定定时任务的执行时间。

在线Cron表达式生成器:

限时特惠:本站每日持续更新海量各大内部创业教程,永久会员享受全站资源免费下载.www.heook.com
站长微信:wc764800

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容