Spring Boot多个定时任务阻塞问题的解决方法是什么
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,Spring Boot多个定时任务阻塞问题的解决方法是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。前言今天介绍一下
千家信息网最后更新 2026年11月01日Spring Boot多个定时任务阻塞问题的解决方法是什么
Spring Boot多个定时任务阻塞问题的解决方法是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
前言
今天介绍一下Spring Boot 中 如何开启多线程定时任务?
为什么Spring Boot 定时任务是单线程的?
想要解释为什么,一定要从源码入手,直接从@EnableScheduling这个注解入手,找到了这个ScheduledTaskRegistrar类,其中有一段代码如下:
protected void scheduleTasks() { if (this.taskScheduler == null) { this.localExecutor = Executors.newSingleThreadScheduledExecutor(); this.taskScheduler = new ConcurrentTaskScheduler(this.localExecutor); }}如果taskScheduler为null,则创建单线程的线程池:Executors.newSingleThreadScheduledExecutor()。
多线程定时任务如何配置?
下面介绍三种方案配置多线程下的定时任务。
1、重写SchedulingConfigurer#configureTasks()
直接实现SchedulingConfigurer这个接口,设置taskScheduler,代码如下:
@Configurationpublic class ScheduleConfig implements SchedulingConfigurer { @Override public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { //设定一个长度10的定时任务线程池 taskRegistrar.setScheduler(Executors.newScheduledThreadPool(10)); }}2、通过配置开启
Spring Boot quartz 已经提供了一个配置用来配置线程池的大小,如下;
spring.task.scheduling.pool.size=10
只需要在配置文件中添加如上的配置即可生效!
3、结合@Async
@Async这个注解都用过,用来开启异步任务的,使用@Async这个注解之前一定是要先配置线程池的,配置如下:
@Bean public ThreadPoolTaskExecutor taskExecutor() { ThreadPoolTaskExecutor poolTaskExecutor = new ThreadPoolTaskExecutor(); poolTaskExecutor.setCorePoolSize(4); poolTaskExecutor.setMaxPoolSize(6); // 设置线程活跃时间(秒) poolTaskExecutor.setKeepAliveSeconds(120); // 设置队列容量 poolTaskExecutor.setQueueCapacity(40); poolTaskExecutor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); // 等待所有任务结束后再关闭线程池 poolTaskExecutor.setWaitForTasksToCompleteOnShutdown(true); return poolTaskExecutor; }然后在@Scheduled方法上标注@Async这个注解即可实现多线程定时任务,代码如下:
@Async @Scheduled(cron = "0/2 * * * * ? ") public void test2() { System.out.println("..................执行test2................."); }看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。
线程
任务
配置
注解
代码
方法
帮助
多个
问题
阻塞
清楚
内容
前言
大小
如上
容量
对此
接口
文件
文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技网
科技服务与互联网
迪茉互联网科技
融势互联网科技
润盈互联网科技
青海省互联网新科技
富国互联网科技创新基金
互联网科技公司需要的职位
天速互联网络科技有限公司
常德市电业局互联网科技部
苏州铭阳互联网科技有限公司
工业互联网山东科技大学
互联网方面的科技前沿
东营紫格互联网科技
互联网界的黑科技
艺电能源互联网科技有限公司招聘
同城互联网络科技
北京军民互联网科技公司
好易买互联网科技
伍佰万互联网科技是干嘛的
深圳市人人互联网科技有限公司
互联网科技卖菜
云电互联网科技
互联网科技宣传片
滨湖区互联网智能科技产品供应
卫星互联网科技股票
哈尔滨屹滨互联网科技有限公司
互联网风格科技公司名称
绵阳真晨互联网科技有限公司
第三届互联网大会安防黑科技