本文目录:
项目开发中经常需要执行一些定时任务,比如:需要在每天凌晨时候,分析一次前一天的日志信息。Spring为我们提供了异步执行任务调度的方式,提供 TaskExecutor 、TaskScheduler 接口。Spring Boot 项目,我们要开启一个定时任务,需要如下两步走:
项目中会用到 @EnableScheduling 、 @Scheduled 两个注解。
需要我们来编写一个 cron 表达式来指定任务执行规则。
1.注解的使用
①需要在项目启动类上标注 @EnableScheduling 注解
@EnableScheduling //开启基于注解的定时任务
@SpringBootApplication
public class Springboot04TaskApplication {
public static void main(String[] args) {
SpringApplication.run(Springboot04TaskApplication.class, args);
}
}
②在具体的业务执行方法上标注 @Scheduled注解
@Service
public class xxxService{
@Scheduled(cron = "0/4 * * * * MON-SAT")
public void xxxMethod(){
//此处为具体业务逻辑方法
System.out.println("业务逻辑方法");
}
}
2.cron 表达式介绍
我们可以通过编写 cron 表达式来指定定时任务执行的规则。cron 表达式由 7 个部分组成,各部分之间用空格隔开,Cron表达式的7个部分从左到右代表的含义如下:
秒(second) 分(minute) 时(hour) 日(day of month) 月(month) 星期(day of week) 年(year)
你也可以搜索一下,网上有提供自定义 cron 表达式的工具类。
在线 cron 表达式生成器
在线 cron 表达式生成器(2)