gpt4 book ai didi

java - 如何创建容错JobStep

转载 作者:行者123 更新时间:2023-12-01 08:58:15 28 4
gpt4 key购买 nike

我有一个 Spring Batch 项目,其中有几份工作。我将它们模块化在一个作业中,以便按顺序执行它们,如下所示:

@Autowired
@Qualifier("job1")
private Job job1;

@Autowired
@Qualifier("job2")
private Job job2;

@Autowired
@Qualifier("job3")
private Job job3;

@Bean(name = "step1")
public Step step1() {
return stepBuilderFactory.get("step1").job(job1).build();
}

@Bean(name = "step2")
public Step step2() {
return stepBuilderFactory.get("step2").job(job2).build();
}

@Bean(name = "step3")
public Step step3() {
return stepBuilderFactory.get("step3").job(job3).build();
}

@Bean(name = "parentJob")
public Job parentJob(@Qualifier("step1") Step step1, @Qualifier("step2") Step step2, @Qualifier("step3") Step step3) {
return jobBuilderFactory.get("parentJob")
.incrementer(new RunIdIncrementer())
.repository(jobRepository)
.start(step1)
.next(step2)
.next(step3)
.build();
}

但是,如果其中一个 JobSteps 失败,则父作业也会失败。是否有任何机制可以使所有 JobSteps 具有容错能力,以便如果其中一个作业失败,父作业将继续?

最佳答案

您基本上是在寻找条件流,如here所述。即,即使上一个作业失败并且这不是默认流程,您也想继续执行下一个作业。您需要使用模式 - * 来实现这一点。

在 Java Config 中,它会像 , .on("*").to(...) 等等。

on(..) 的模式参数可以是 ExitStatus 中的任何值。和 * 前提是您没有使用任何其他自定义状态。

希望对你有帮助!!

关于java - 如何创建容错JobStep,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41886800/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com