即使在关闭上下文和作业完成后,ThreadPoolTask​​Executor也没有关闭

时间:2017-01-10 10:52:36

标签: java spring-boot spring-batch

我有一个Spring Batch作业,有两个分区步骤。我为两个从属步骤配置了单独的ThreadPoolTaskExecutor,因为我需要不同的池设置。

两个主要步骤 - 将SimpleAsyncTaskExecutor配置为TaskExecutor

两个从属步骤 - 已配置将ThreadPoolTaskExecutor分隔为TaskExecutor

我这样做是为了实现并行从属步骤以及从属步骤的并行块。

一旦我的工作完成,我看到在最后一个奴隶步骤中配置的线程池保持挂起,因此工作没有终止。

我正在使用Spring Boot。

我按here中的建议关闭了上下文(ConfigurableApplicationContext)。

按照建议here执行System.exit(0)解决了我的问题,但我想知道是否有一种干净的方法可以明确地关闭线程池,或者我是否做了任何错误的配置。

请建议。

0 个答案:

没有答案