玩转SpringBoot之定时任务@Scheduled线程池配置-

Posted

tags:

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

参考技术A

对于定时任务,在SpringBoot中只需要使用@Scheduled 这个注解就能够满足需求,它的出现也给我们带了很大的方便,我们只要加上该注解,并且根据需求设置好就可以使用定时任务了。

但是,我们需要注意的是, @Scheduled 并不一定会按时执行 。

因为使用@Scheduled 的定时任务虽然是 异步执行 的,但是,不同的定时任务之间 并不是并行 的!!!!!!!!

在其中一个定时任务没有执行完之前,其他的定时任务即使是到了执行时间,也是不会执行的,它们会进行排队。

也就是如果你想你不同的定时任务互不影响,到时间就会执行,那么你最好将你的定时任务方法自己搞成异步方法,这样,定时任务其实就相当于调用了一个线程执行任务,一瞬间就结束了。比如使用: @Async

当然,也可以勉强将你的定时任务当做都会定时执行。但是,作为一个合格的程序员

那么,如何将@Scheduled实现的定时任务变成异步的呢?此时你需要对@Scheduled进行线程池配置。

回到顶部

附带介绍一下线程池的几个参数。需要彻底搞懂,不要死记硬背哦!

回到顶部

回到顶部

上个流程图,先试着自己看下能不能看懂:


本文转自https://www.cnblogs.com/mmzs/p/16057742.html

以上是关于玩转SpringBoot之定时任务@Scheduled线程池配置-的主要内容,如果未能解决你的问题,请参考以下文章

玩转SpringBoot之定时任务@Scheduled线程池配置-

记一次Laravel 定时任务schedul:run未执行的处理

@Schedul 中cron的命名规则

重学SpringBoot系列之异步任务与定时任务

SpringBoot动态管理Quartz

小玩意 - 一篇带你玩转 SpringBoot 钉钉机器人