我正在将 Spring Batch 与 Spring 云任务一起使用。我的工作中有以下配置:
@Bean
public Job jobDemo(
@Value("${jobname}")String jobName,
JobBuilderFactory jobBuilderFactory,
JobCompletionNotificationListener listener
) {
return jobBuilderFactory.get(jobName)
.incrementer(new RunIdIncrementer())
.preventRestart()
.listener(listener)
.flow(stepA())
.end()
.build();
}
我不想在工作中重新启动功能,这就是我放.preventRestart()
. 我想在每次任务运行时启动一个新作业,也就是说,即使上次作业失败或停止或任何其他情况,也要运行一个新的作业实例。但我收到以下错误:
org.springframework.batch.core.repository.JobRestartException: JobInstance already exists and is not restartable
这仅在作业未成功完成的情况下发生。关于解决方案的任何想法?