我正在使用TaskExecutorPartitionHandler
将我的工作分成多个PartitionStep
(由gridSize
控制),并且还使用SimpleAsyncTaskExecutor
在每个步骤中异步处理(由{控制) {1}})。
到目前为止,如果concurrencyLimit
足够大(让我们说50),我发现最大并发处理整个批处理作业仅限于{{1 }}
通过进一步测试,我确定该公式中的concurrencyLimit
可以通过min(10, gridSize * 4)
的{{1}}方法进行修改。
但是,即使我将4
和throttleLimit()
配置为更大的值,整体并发性也不会超过SimpleStepBuilder
。 有谁知道我可以在哪里配置该限制?
P.S。我正在以编程方式配置作业,而不是使用XML。
答案 0 :(得分:1)
有点晚了,但请尝试检查您是否使用 HikariCP,它具有默认的 10 个同时数据库连接限制
刚刚遇到类似问题并通过增加 spring.datasource.hikari.maximum-pool-size
见:Number of parallel threads processing is capped to 10 with Spring Batch