SpringBoot的定时任务

Posted 奔跑的路奇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot的定时任务相关的知识,希望对你有一定的参考价值。

spring boot定时任务

  1. 在启动器配置开启定时任务@EnableScheduling
  2. 在定时任务类的指定⽅法上加上@Scheduled开启定时任务
  3. 定时任务表达式:使⽤cron属性来配置定时任务执⾏时间

定时任务方法配置

在springboot的启动类上加上 @EnableScheduling 注解。

测试类:

@Component
public class SeckillGoodsPushTask {
	 /****
	 * 每30秒执⾏⼀次
	 */
	 @Scheduled(cron = "0/30 * * * * ?")
	 public void loadGoodsPushRedis(){
	 	System.out.println("task demo");
	 }
}

定时任务常⽤时间表达式

CronTrigger配置完整格式为: [秒][分] [⼩时][⽇] [⽉][周] [年]

使⽤说明:

通配符说明:
* 表示所有值. 例如:在分的字段上设置 "*",表示每⼀分钟都会触发。
? 表示不指定值。使⽤的场景为不需要关⼼当前设置这个字段的值,4为何第6为必须有⼀个是?

- 表示区间。例如 在⼩时上设置 "10-12",表示 10,11,12点都会触发。
, 表示指定多个值,例如在周字段上设置 "MON,WED,FRI" 表示周⼀,周三和周五触发 12,14,19
/ ⽤于递增触发。如在秒上⾯设置"5/15" 表示从5秒开始,每增15秒触发(5,20,35,50)。 在⽉字段上
设置'1/3'所示每⽉1号开始,每隔三天触发⼀次。

常⽤表达式

0 0 10,14,16 * * ? 每天上午10点,下午2点,40 0/30 9-17 * * ? 朝九晚五⼯作时间内每半⼩时
"0 0 12 * * ?" 每天中午12点触发
"0 15 10 ? * *" 每天上午10:15触发
"0 15 10 * * ?" 每天上午10:15触发
"0 15 10 * * ? *" 每天上午10:15触发
"0 15 10 * * ? 2005" 2005年的每天上午10:15触发
"0 * 14 * * ?" 在每天下午2点到下午2:59期间的每1分钟触发
"0 0/5 14 * * ?" 在每天下午2点到下午2:55期间的每5分钟触发

最后,如果有问题,希望指正,一起进步。

以上是关于SpringBoot的定时任务的主要内容,如果未能解决你的问题,请参考以下文章

springboot项目使用SchedulingConfigurer实现多个定时任务

#yyds干货盘点# springboot整合Elastic Job实现分片配置定时任务

SpringBoot定时任务

Springboot 内置定时器的使用

SpringBoot使用SchedulingConfigurer实现多个定时任务多机器部署问题

SpringBoot使用SchedulingConfigurer实现多个定时任务多机器部署问题