我已经用=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_"
答案 0 :(得分:0)
如前所述,我想知道它是否不是主线程+池的线程。 您正在使用任务执行器,因此Spring Batch可能正在切换到“主/从”模式。 我建议您进行一些调试,并确定使用了Tasklet的哪种实现,并观看“执行”方法,以便您了解在“幕后”执行的操作:)。
希望有帮助。