springboot定时任务但时间间隔不同
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot定时任务但时间间隔不同相关的知识,希望对你有一定的参考价值。
参考技术A Springboot定时任务的时间间隔可以通过使用@Scheduled注解来实现,@Scheduled注解支持两种类型的时间间隔:一种是fixedRate,表示每隔多少毫秒执行一次任务;另一种是fixedDelay,表示上一次任务执行完成后多少毫秒再次执行。另外,还可以使用cron表达式来指定任务的执行时间。玩转SpringBoot之定时任务@Scheduled线程池配置-
参考技术A对于定时任务,在SpringBoot中只需要使用@Scheduled 这个注解就能够满足需求,它的出现也给我们带了很大的方便,我们只要加上该注解,并且根据需求设置好就可以使用定时任务了。
但是,我们需要注意的是, @Scheduled 并不一定会按时执行 。
因为使用@Scheduled 的定时任务虽然是 异步执行 的,但是,不同的定时任务之间 并不是并行 的!!!!!!!!
在其中一个定时任务没有执行完之前,其他的定时任务即使是到了执行时间,也是不会执行的,它们会进行排队。
也就是如果你想你不同的定时任务互不影响,到时间就会执行,那么你最好将你的定时任务方法自己搞成异步方法,这样,定时任务其实就相当于调用了一个线程执行任务,一瞬间就结束了。比如使用: @Async
当然,也可以勉强将你的定时任务当做都会定时执行。但是,作为一个合格的程序员
那么,如何将@Scheduled实现的定时任务变成异步的呢?此时你需要对@Scheduled进行线程池配置。
回到顶部
附带介绍一下线程池的几个参数。需要彻底搞懂,不要死记硬背哦!
回到顶部
回到顶部
上个流程图,先试着自己看下能不能看懂:
本文转自https://www.cnblogs.com/mmzs/p/16057742.html
以上是关于springboot定时任务但时间间隔不同的主要内容,如果未能解决你的问题,请参考以下文章