当我使用 Spring Batch admin 运行长时间运行的批处理作业的多个实例时,它会在达到 jobLauncher 线程池任务执行器池大小后阻止其他作业运行。但是从 cron 启动多个作业似乎工作得很好。以下是作业启动器配置。
<bean id="jobLauncher" class="org.springframework.batch.core.launch.support.SimpleJobLauncher">
<property name="jobRepository" ref="jobRepository" />
<property name="taskExecutor" ref="jobLauncherTaskExecutor" />
</bean>
<task:executor id="jobLauncherTaskExecutor" pool-size="6" rejection-policy="ABORT" />
Spring Batch admin Restful API 是否使用了 xml 配置中指定的不同作业启动器?
最佳答案
我建议看看另一个 TaskExecutor spring 框架中的选项。在最坏的情况下,您可以配置自己的 ThreadPoolTaskExecutor 来使用缓存的线程池,但如果您可能运行的并发作业数量很大或不受限制,我会警告您不要这样做。
这个其他SO帖子提供了此类配置的示例。
关于java - Spring批量并行处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26257148/