【发布时间】:2019-01-18 10:40:01
【问题描述】:
我已经用maxPoolSize 1 和throttleLimit 1 配置了TaskExecutor,我看到的是它正在运行2 个线程。我现在想将我的 Spring Batch 应用程序用作单线程,并在以后需要时通过增加属性文件中的线程数来配置此功能。问题是为什么当我提到池大小和油门限制为 1 时它会运行 2 个线程。
我是怎么找到它的?
我正在设置
.throttleLimit(1)
和
asyncTaskExecutor.setConcurrencyLimit(1);
我将我的TaskExecutor 命名为"poller_batch_thread",并在 read() 方法中打印以"poller_" 开头的线程名称,这就是我在日志中看到的内容:
2019-01-21 10:08:50 INFO m.d.s.a.b.reader.PortalMessageReader - Portal Message Read by Thread id 115 - Thread name: poller_batch_thread115
2019-01-21 10:08:50 INFO m.d.s.a.b.reader.PortalMessageReader - Portal Message Read by Thread id 116 - Thread name: poller_batch_thread116
【问题讨论】:
-
提供更多关于您如何发现它正在运行 2 个线程的详细信息。
-
你是如何断定它正在运行两个线程的?你确定这两个线程不是主线程+池的(单)线程之和吗?
-
我已经更新了我的问题。
标签: spring spring-batch