gpt4 book ai didi

java - 将任务提交到 ThreadPoolTask​​Executor 时出现 RejectedExecutionException

转载 作者:太空宇宙 更新时间:2023-11-04 07:58:20 24 4
gpt4 key购买 nike

spring ThreadPoolTask​​Executor 用于在我们的应用程序中进行并发处理。成功完成所有作业后,将调用摊牌方法。这个实现工作正常,执行 junit 时出现问题。

我使用SpringJUnit4ClassRunner为此类编写了多个测试用例。第一个测试用例将完美运行并关闭 ThreadPoolTask​​Executor。但是当第二个测试用例尝试提交任务时,会引发以下异常

org.springframework.core.task.TaskRejectedException: Executor [java.util.concurrent.ThreadPoolExecutor@16cefa8] did not accept task: com.sample.SampleJob@ea3cdf
....
aused by: java.util.concurrent.RejectedExecutionException
at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:1768)
at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:767)

根据我的分析,抛出异常是因为我试图在 ThreadPoolExecutor 关闭时将任务提交给它。

有人可以帮我解决这个问题吗?

最佳答案

不确定何时关闭执行器,但我认为不应在每个测试用例之后调用 shutdown,而应该在所有测试用例结束时调用 shutdown。您可以使用以下内容:

@AfterClass
public void tearDown(){
//shutdown your executor
}

希望有帮助:)

关于java - 将任务提交到 ThreadPoolTask​​Executor 时出现 RejectedExecutionException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13269756/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com