Spring boot 从数据流重新启动后,Spring批处理从头开始

Spring boot 从数据流重新启动后,Spring批处理从头开始,spring-boot,spring-batch,spring-cloud-dataflow,Spring Boot,Spring Batch,Spring Cloud Dataflow,我开发了一个简单的spring批处理应用程序,并通过springclouddataflow启动它。 但是,当我从数据流重新启动失败的作业时,批处理将从头开始,而不是从最后一次执行开始。 职位发布: Map<String,JobParmeter> maps = new HashMap<>(); maps.put("jobID",new JobParameter(System.currentTimeMillis())); JobExecution jobE

我开发了一个简单的spring批处理应用程序,并通过springclouddataflow启动它。 但是,当我从数据流重新启动失败的作业时,批处理将从头开始,而不是从最后一次执行开始。 职位发布:

Map<String,JobParmeter> maps = new HashMap<>();
maps.put("jobID",new JobParameter(System.currentTimeMillis()));
JobExecution jobExecution = jobLauncher.run(job,new JobParameters(maps));
其他一切都是@Autowired,没有自定义配置。我正在使用spring boot应用程序

如果我不使用自定义作业启动程序(上面代码中的JobLaunch),批处理将始终重新启动。即使前一个实例已完成,也不会创建作业的新实例


请帮助我正确配置作业。

由于每次运行时都会向作业参数添加新的时间戳,因此每次都会得到一个不同的作业实例。如果确实要重新启动失败的作业实例,则需要传递与上次运行相同的标识作业参数(
jobID

即使上一个实例已完成,也不会创建作业的新实例


这是故意的。无法重新启动已完成的作业实例。

是的,我理解这一点,但我正在使用spring cloud数据流重新启动一个作业,该作业应传递相同的参数(在我的示例中为jobID)。我没有手动传递任何参数。但每次我重新启动作业时,它都会创建新的作业实例id。
jobBuilderFactory.get("job").start(step).build();