6

我有一个澄清。

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

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

如果可能的话,请让我知道该怎么做。

4

3 回答 3

8

是的你可以。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 发出信号,以将该参数用作作业实例的“身份”的一部分,因此每次“运行”作业时都会获得新的实例。

于 2016-07-13T11:05:05.217 回答
1

是的,您可以非常多地并行运行任务,如此处所述

但是有一些事情需要考虑

  • 您的应用程序逻辑是否需要并行执行?因为如果您要并行运行步骤,则必须注意并构建应用程序逻辑,以便并行步骤完成的工作不会重叠(除非这是您的应用程序的意图)
于 2012-06-19T17:07:07.047 回答
0

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

于 2012-06-15T10:37:13.290 回答