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()方法是可以看到线程池还没有关闭的

相关推荐
爱笑的眼睛1133 分钟前
PyTorch Lightning:重新定义深度学习工程实践
java·人工智能·python·ai
Kevinyu_1 小时前
责任链模式
java·hadoop·责任链模式
明洞日记1 小时前
【设计模式手册012】责任链模式 - 请求处理的流水线艺术
java·设计模式·责任链模式
q***07141 小时前
Java实战:Spring Boot application.yml配置文件详解
java·网络·spring boot
雨中飘荡的记忆1 小时前
Spring Alibaba AI 实战指南
java·ai编程
冰封剑心1 小时前
MiniCPM-V-2_6 (4-bit 量化)使用
java·前端·数据库
mqiqe1 小时前
【Spring AI MCP】四、MCP 服务端
java·人工智能·spring
l***74941 小时前
springboot与springcloud对应版本
java·spring boot·spring cloud
稚辉君.MCA_P8_Java1 小时前
Gemini永久会员 Java实现的暴力递归版本
java·数据结构·算法
许商2 小时前
【stm32】【printf】
java·前端·stm32