Spring批处理-配置线程数

时间:2019-01-18 10:40:01

标签: spring spring-batch

我已经用=CDbl(IIF(ReportItems!Textbox6 <= 1.4, "A*", IIF(ReportItems!Textbox6 <= 2.4 AND >= 1.5, "A", IIF(ReportItems!Textbox6 <= 3.4 AND >= 2.5, "B", IIF(ReportItems!Textbox6 <= 4.4 AND >= 3.5, "C", IIF(ReportItems!Textbox6 <= 5.4 AND >= 4.5, "D" IIF(ReportItems!Textbox6 <= 6.4 AND >= 5.5, "E" IIF(ReportItems!Textbox6 <= 7.4 AND >= 6.5, "U", "Error")))))))) 1和TaskExecutor 1配置了maxPoolSize,我看到它正在运行2个线程。我现在想将Spring Batch应用程序用作单线程,并通过稍后在需要时仅增加属性文件中的线程数来配置此功能。问题是,当我提到池大小和限制为1时,为什么它将运行2个线程?

我是怎么找到它的?

我正在设置

throttleLimit

.throttleLimit(1)

我将asyncTaskExecutor.setConcurrencyLimit(1); 命名为TaskExecutor,并在read()方法中打印以"poller_batch_thread"开头的线程的名称,这是我在日志中看到的:

"poller_"

1 个答案:

答案 0 :(得分:0)

如前所述,我想知道它是否不是主线程+池的线程。 您正在使用任务执行器,因此Spring Batch可能正在切换到“主/从”模式。 我建议您进行一些调试,并确定使用了Tasklet的哪种实现,并观看“执行”方法,以便您了解在“幕后”执行的操作:)。

希望有帮助。