简介
在项目中我们有时需要做定时任务,那么我们在Spring Boot项目中如何添加定时任务呢?非常简单,让我们一起学习吧。
配置
主要是添加注解的方式进行
1、在启动类Application.class
中添加注解
@MapperScan(“com.example.myjpa.dao”)//mybatis的注解
@EnableScheduling//定时器注解
1 | @SpringBootApplication |
2、创建ScheduledTasks.class
做定时任务,添加注解
@Configuration //1.主要用于标记配置类,兼备Component的效果。
@EnableScheduling // 2.开启定时任务
1 | @Configuration //1.主要用于标记配置类,兼备Component的效果。 |
3、创建config定时器配置CompleteScheduleConfig.class
,添加注解
@Configuration
@EnableScheduling
1 | @Configuration |
- 注:这个案例主要是通过定时利用JPA操作数据的方式进行代码编写案例(案例是进行每隔2分钟就插入一条数据),在开发项目中假如数据刷新我们可以用定时任务完成、股票类数据刷新等等。所以定时任务在后台任务中也是一个重点。
cron表达式
大家可以进入这里测试cron在线表达式生成工具
本篇案例中"0 0/2 * * * ?"
是表示每个2分钟运行一次。
认识cron表达式
名词 | 范围 | 表达式 |
---|---|---|
秒 | 0-59 | - * / |
分 | 0-59 | - * / |
时 | 0-23 | - * / |
日期 | 1-31 | - * ? / L W C |
星期 | 1-7或者 SUN-SAT | - * ? / L C # |
年(非必填) | 1970-2099 | - * / |
字符解析
表达式字符 | 注释 |
---|---|
? |
表示所有值、不确定的值 |
, |
表示附加数个可能的值 |
- |
表示指定值的范围 |
/ |
表示指定从哪个值开始,然后按照哪个值进行递增,如i/j 表示从i 开始,每次按照j 值进行递增 |
L ,late简写 |
表示在日时是这个最后一天,在周期时是表示这个月最后一个星期几 |
W weekday简写 |
表示离给定日期最近的工作日(周一到周五) |
# |
表示这个月第几个周几,如:6#3表示这个月第3个周五(6表示周五,3表示的是第3个) |
举例
表达式 | 注解 |
---|---|
"0/1000 * * * * ?" |
每1000秒执行一次 |
*/1000 * * * * ? |
每隔1000秒执行一次 |
"0 0 10 * * ?" |
每天10点整执行一次 |
0 0 5-15 * * ? |
每天5-15点整点执行一次 |
0 0/30 9-18 * * ? |
早上9点到下午18点工作时间内每半小时执行一次 |
0 0 12 ? * WED |
每个星期三中午12点执行 |
0 0 18 ? * TUES,THUR,SAT |
每周二、四、六下午6点执行一次 |
"20,30,40 * * * * ?" |
每20秒,30秒,40秒时执行一次 |
"0 15 10 L * ?" |
表示每个月最后一天的10点15分0秒执行一次 |
"0 15 10 LW * ?" |
表示每个月最后一个工作日的10点15分0秒执行一次 |
下载
总结
本篇案例主要讲解的是在Spring Boot运用定时器,这是在我的项目中用到了,所有总结为一个模块进行案例分析,代码很简单。这里就不带大家进行单元测试了。
推荐
我的博客https://eirunye.github.io进行浏览相关技术文章,大家一起相互探讨技术。
如果大家想了解更多的Spring Boot相关博文请进入我的Spring Boot系列博客栈