自学内容网 自学内容网

SpringBoot 定时任务之@Scheduled cron表达式

在Spring Boot中,@Scheduled注解配合Cron表达式可以用来定义定时任务。

Cron表达式是一种灵活的时间表达方式,通常用于配置任务的执行周期。

以下是一些关键点和示例:

1. 开启定时任务支持

        要在Spring Boot应用中使用定时任务,首先需要在配置类上添加@EnableScheduling注解。

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;

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

2. 使用@Scheduled和Cron表达式

        在需要执行定时任务的方法上添加@Scheduled注解,并通过cron属性指定Cron表达式。

        Cron表达式的格式:

                Cron表达式由六个或七个字段组成,从左至右分别代表:

                        秒(0-59)

                        分钟(0-59)

                        小时(0-23)

                        日(1-31)

                        月(1-12)

                        星期(0-6,其中0和7都是星期天)

                        年(可选,留空则表示任何年份)
                示例:
                        假设想要每天凌晨2点执行一个任务,Cron表达式可以这样写:

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

@Component
public class MyTask {

    @Scheduled(cron = "0 2 * * *")
    public void run() {
        System.out.println("Task executed at: " + new Date());
    }
}

        更复杂的Cron表达式

                Cron表达式还支持一些特殊字符,如*(任意值)、?(不指定)、-(范围)、,(列表)、/(步长)等。

                例如,每周一到周五的上午9点执行任务:

@Scheduled(cron = "0 9 ? * MON-FRI")
public void workDayTask() {
    // 业务逻辑
}

3. 注意事项

        Cron表达式的解析依赖于运行环境的时区设置,确保你的应用服务器时区设置正确。

        测试Cron表达式是否正确,可以使用在线Cron表达式解析工具或调试程序中的定时任务。


原文地址:https://blog.csdn.net/m0_72642319/article/details/140271434

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!