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

时间:2012-06-08 12:10:26

标签: spring-batch

我有一个澄清。

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

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

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

3 个答案:

答案 0 :(得分: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发出信号,将该参数用作作业实例的“身份”的一部分,因此每次“运行”该作业时都会获得新的实例。 / p>

答案 1 :(得分:1)

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

但有些事情需要考虑

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

答案 2 :(得分:0)

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