Java Spring批处理多线程默认限制为10?

Java Spring批处理多线程默认限制为10?,java,multithreading,spring-batch,Java,Multithreading,Spring Batch,我正在使用TaskExecutionPartitionHandler将我的作业划分为多个PartitionStep(由gridSize控制),还使用SimpleAsyncTaskExecutor在每个步骤中异步处理(由ConcurrencyLit控制) 到目前为止,如果concurrencyLit足够大(比如说50),我观察到整个批处理作业的最大并发处理限制在min(10,gridSize*4) 通过进一步测试,我确定公式中的4可以通过simplestbuilder的throttleLimit(

我正在使用
TaskExecutionPartitionHandler
将我的作业划分为多个
PartitionStep
(由
gridSize
控制),还使用
SimpleAsyncTaskExecutor
在每个步骤中异步处理(由
ConcurrencyLit
控制)

到目前为止,如果
concurrencyLit
足够大(比如说50),我观察到整个批处理作业的最大并发处理限制在
min(10,gridSize*4)

通过进一步测试,我确定公式中的
4
可以通过
simplestbuilder
throttleLimit()
方法进行修改

但是,即使我将
gridSize
throttleLimit
配置为更大的值,总体并发性也不会超过
10
有人知道我可以在哪里配置该限制吗?


p、 我是以编程方式配置作业,而不是使用XML。

您的
AppConfig
是否实现了
AsyncConfigurer
?@Palcente感谢您指出了这个方向,我已经深入了解了
AppConfig
AsyncConfigurer
的内容。它说“默认情况下,Spring将搜索关联的线程池定义:上下文中唯一的TaskExecutor bean,或者名为“TaskExecutor”的执行器bean。”我确实有一个bean返回
SimpleAsyncTaskExecutor
``@Bean@Qualifier(“slaveTaskExecutor”)public TaskExecutor TaskExecutor(){}``因为我使用的是spring批处理,所以我有一个扩展
DefaultBatchConfigurer
的配置器。我是否需要一个
AppConfig
+
AsyncConfigurer
?并为整个批处理作业指定另一个任务执行器?如果
DefaultBatchConfigurer
的类型为
AppConfig
,则只需添加
AsyncConfigurer
类型即可。实际上,我检查了上述内容,并注意到可以在启动器级别设置执行器。。检查文档中的
simplejoblancher
您的
AppConfig
是否实现了
AsyncConfigurer
?@Palcente感谢您指出了这个方向,我已经进一步了解了
AppConfig
AsyncConfigurer
。它说“默认情况下,Spring将搜索关联的线程池定义:上下文中唯一的TaskExecutor bean,或者名为“TaskExecutor”的执行器bean。”我确实有一个bean返回
SimpleAsyncTaskExecutor
``@Bean@Qualifier(“slaveTaskExecutor”)public TaskExecutor TaskExecutor(){}``因为我使用的是spring批处理,所以我有一个扩展
DefaultBatchConfigurer
的配置器。我是否需要一个
AppConfig
+
AsyncConfigurer
?并为整个批处理作业指定另一个任务执行器?如果
DefaultBatchConfigurer
的类型为
AppConfig
,则只需添加
AsyncConfigurer
类型即可。实际上,我检查了上述内容,并注意到可以在启动器级别设置执行器。。检查文档中的
simplejoblancher