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)!