SpringBootTest运行线程池被拒绝

复制代码
localhost myApp 2025-10-14 20:07:46.646 ERROR ???? [nTaskExecutor-8] s.l.SmsSendMsgRecordConsumerListenerTest:148 : [] [] [] validAddressMatchedMoveOrderMsg error, e->
java.util.concurrent.RejectedExecutionException: Task java.util.concurrent.CompletableFuture$AsyncSupply@21dd0075 rejected from java.util.concurrent.ThreadPoolExecutor@449d25f9[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 0]
	at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2063) 
	at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:830) 
	at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1379) 
	at java.util.concurrent.CompletableFuture.asyncSupplyStage(CompletableFuture.java:1618) 
	at java.util.concurrent.CompletableFuture.supplyAsync(CompletableFuture.java:1843) 
	at com.pdd.service.oakland.sending.listener.SmsSendMsgRecordConsumerListenerTest.validAddressMatchedMoveOrderMsg(SmsSendMsgRecordConsumerListenerTest.java:117) 
	at com.pdd.service.oakland.sending.listener.SmsSendMsgRecordConsumerListenerTest.lambda$consumeMessage$0(SmsSendMsgRecordConsumerListenerTest.java:78) 
	at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1640) 
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 
	at java.lang.Thread.run(Thread.java:750) 

和SpringBootTest容器销毁时间有关系,这里的使用场景是线程池嵌套线程池,CompletableFuture嵌套CompletableFuture

在第一个线程池任务全部提交完成之后,才会开始运行第二个线程池,这个时候容器已经在销毁了,所以会提示线程池已经TERMINATED了

在中途打断点用isTerminated()方法是可以看到线程池还没有关闭的

相关推荐
超级大只老咪6 小时前
数组相邻元素比较的循环条件(Java竞赛考点)
java
小浣熊熊熊熊熊熊熊丶6 小时前
《Effective Java》第25条:限制源文件为单个顶级类
java·开发语言·effective java
毕设源码-钟学长7 小时前
【开题答辩全过程】以 公交管理系统为例,包含答辩的问题和答案
java·eclipse
啃火龙果的兔子7 小时前
JDK 安装配置
java·开发语言
星哥说事7 小时前
应用程序监控:Java 与 Web 应用的实践
java·开发语言
派大鑫wink7 小时前
【JAVA学习日志】SpringBoot 参数配置:从基础到实战,解锁灵活配置新姿势
java·spring boot·后端
xUxIAOrUIII7 小时前
【Spring Boot】控制器Controller方法
java·spring boot·后端
Dolphin_Home7 小时前
从理论到实战:图结构在仓库关联业务中的落地(小白→中级,附完整代码)
java·spring boot·后端·spring cloud·database·广度优先·图搜索算法
醇氧7 小时前
org.jetbrains.annotations的@Nullable 学习
java·开发语言·学习·intellij-idea
Java&Develop7 小时前
Aes加密 GCM java
java·开发语言·python