springboot定时任务会被打断吗
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot定时任务会被打断吗相关的知识,希望对你有一定的参考价值。
参考技术A 一般不会如果中断了可能因为:spring boot中得定时任务都时单线程得,要进行多线程执行,还要配置;如果线程本身出现死锁,ExecutorService一般不会监控到并处理的,所以它会将后续的定时计划全部delay和pending。
如果线程的某次定时执行过程中出现了未捕获的异常,那么ExecutorService也会将后续的定时计划全部delay和pending。定时任务执行成功了,于是得出结论: 服务器系统时间改变后,Spring 定时任务将失效。
SpringBoot的定时任务
SpringBoot的定时任务
spring boot定时任务
- 在启动器配置开启定时任务@EnableScheduling
- 在定时任务类的指定⽅法上加上@Scheduled开启定时任务
- 定时任务表达式:使⽤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点,4点
0 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定时任务会被打断吗的主要内容,如果未能解决你的问题,请参考以下文章