Spring Boot多个定时任务阻塞问题的解决方法是什么(springboot,开发技术)

时间:2024-05-04 05:53:02 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

    Spring%C2%A0Boot%E5%A4%9A%E4%B8%AA%E5%AE%9A%E6%97%B6%E4%BB%BB%E5%8A%A1%E9%98%BB%E5%A1%9E%E9%97%AE%E9%A2%98%E7%9A%84%E8%A7%A3%E5%86%B3%E6%96%B9%E6%B3%95%E6%98%AF%E4%BB%80%E4%B9%88

今天介绍一下Spring Boot 中 如何开启多线程定时任务?

为什么Spring Boot 定时任务是单线程的?

想要解释为什么,一定要从源码入手,直接从@EnableScheduling这个注解入手,找到了这个ScheduledTaskRegistrar类,其中有一段代码如下:

如果taskScheduler为null,则创建单线程的线程池:Executors.newSingleThreadScheduledExecutor()。

多线程定时任务如何配置?

下面介绍三种方案配置多线程下的定时任务。

直接实现SchedulingConfigurer这个接口,设置taskScheduler,代码如下:

Spring Boot quartz 已经提供了一个配置用来配置线程池的大小,如下;

只需要在配置文件中添加如上的配置即可生效!

@Async这个注解都用过,用来开启异步任务的,使用@Async这个注解之前一定是要先配置线程池的,配置如下:

然后在@Scheduled方法上标注@Async这个注解即可实现多线程定时任务,代码如下:

本文:Spring Boot多个定时任务阻塞问题的解决方法是什么的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:为什么要用UML建模下一篇:

14 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18