目录
1 前言
2 cron表达式
2.1 相关概念的介绍
2.2 举个例子(白雪警告)
2.3 使用网站自动生成
3 Spring Task的使用
3.1 导入依赖坐标
3.2 开启任务调度
3.3 自定义定时任务类
1 前言
当我们需要处理一些定时任务的时候就需要用到我们的Spring Task,接下来我将介绍cron表达式及Spring Task的使用方法。
2 cron表达式
2.1 相关概念的介绍
定义:cron表达式就是一个字符串,通过cron表达式可以定义任务触发的时间,配合SpringTask使用。
规则:分为6或7个域,由空格分隔开
每个域的含义:秒、分钟、小时、日、月、周(星期)、年(可选,默认每年)
注意:日和周(星期)一般不同时指定,避免冲突,因为某个月某日不一定是星期几
常见通配符的含义:
①*(所有)
②?(不指定)
③-(从..到..)
2.2 举个例子(白雪警告)
例子1:
秒 | 分 | 时 | 日 | 月 | 周/星期 |
---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ? |
cron = "1 2 3 4 5 ?"
含义:每年的5月4日3点2分1秒
例子2:
cron = “23 44 11 22 * ? 2024-2025”
含义:从2024年到2025年,每个月的22日11时44分23秒
2.3 使用网站自动生成
这里有个在线Cron表达式生成器,可以按你的需求自动生成cron表达式,CV工程师你值得拥有。
3 Spring Task的使用
3.1 导入依赖坐标
本来是要导入sring-context的,但是其已经包含在spring-boot包下,所以不需要我们再次导入了。
3.2 开启任务调度
在控制类上添加@EnableScheduling注解用于开启任务调度
@EnableScheduling //开启任务调度
public class TestApplication {public static void main(String[] args) {SpringApplication.run(TestApplication.class, args);}
}
3.3 自定义定时任务类
定义好定时任务类后它就会按照@Scheduled中的cron表达式所规定的周期自动执行
@Component
public class MyTask {@Scheduled(cron = "0 * * * * ?") // 每分钟执行一次//定时处理超时public void processTimeOut() {//数据库相关操作}}