Spring Batch - 同时执行作业的多个实例

问题描述 投票:3回答:3

我有一个澄清。

我们是否可以同时运行多个作业实例。

目前,我们在任何给定时间都有单一的工作实例。

如果有可能,请告诉我如何操作。

spring-batch
3个回答
4
投票

是的你可以。 Spring Batch根据JobParameters区分作业。因此,如果您始终将不同的JobParameters传递给同一作业,则将运行同一作业的多个实例。一种简单的方法是向每个启动作业的请求添加UUID参数。例:

final JobParametersBuilder jobParametersBuilder = new JobParametersBuilder();
jobParametersBuilder.addString("instance_id", UUID.randomUUID().toString(), true);
jobLauncher.run(job,jobParametersBuilder.toJobParameters());

结束时的布尔值“true”表示Spring Batch将该参数用作作业实例的“标识”的一部分,因此您将始终在每次“运行”作业时获得新实例。


1
投票

是的,您可以并行运行任务,也可以记录here

但是有一些事情需要考虑

  • 您的应用程序逻辑需要并行执行吗?因为如果你要并行运行步骤,你必须小心并构建应用程序逻辑,以便并行步骤完成的工作不重叠(除非这是你的应用程序的意图)

0
投票

是的,完全可能同时运行多个作业实例(或执行)。

© www.soinside.com 2019 - 2024. All rights reserved.