springboot定时任务会被打断吗

Posted

tags:

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

参考技术A 一般不会
如果中断了可能因为:spring boot中得定时任务都时单线程得,要进行多线程执行,还要配置;如果线程本身出现死锁,ExecutorService一般不会监控到并处理的,所以它会将后续的定时计划全部delay和pending。
如果线程的某次定时执行过程中出现了未捕获的异常,那么ExecutorService也会将后续的定时计划全部delay和pending。定时任务执行成功了,于是得出结论: 服务器系统时间改变后,Spring 定时任务将失效。

SpringBoot的定时任务

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的定时任务

SpringBoot的定时任务

SpringBoot的定时任务

springboot开启定时任务 添加定时任务 推送

SpringBoot入门 定时任务

jeesite 定时任务 或者springboot 执行定时任务