【发布时间】:2012-06-12 11:58:13
【问题描述】:
我有一个澄清。
我们是否可以同时运行多个作业实例。
目前,我们在任何给定时间都有一个作业实例。
如果可以的话,请告诉我怎么做。
【问题讨论】:
标签: spring-batch
我有一个澄清。
我们是否可以同时运行多个作业实例。
目前,我们在任何给定时间都有一个作业实例。
如果可以的话,请告诉我怎么做。
【问题讨论】:
标签: spring-batch
是的,你可以。 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 发出信号,以将该参数用作作业实例的“身份”的一部分,因此您将始终在作业的每次“运行”时获得新实例。
【讨论】:
是的,您可以像 here 所记录的那样并行运行许多任务
但是有一些事情需要考虑
【讨论】:
是的,一个作业的多个实例(或执行)完全可以同时运行。
【讨论】: