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

Ana*_*mar 4 spring-batch

我有一个澄清。

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

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

如果可能的话,请告诉我该怎么做。

Ant*_*ias 5

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

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

在结束时向Spring Batch发出的布尔值“ true”会将该参数用作作业实例的“身份”的一部分,因此您每次执行作业时都将始终获得新的实例。