目前正在学习spring-batch,多步骤任务下根据上一个步骤状态执行下一步时,后边的步骤不会执行, .on("*")也不会执行
4 |# H$ B0 V+ b+ s/ k
& {- p" E; c* I
* v1 E$ x1 ? r+ ?- D
2 |$ r, R% R! N2 f( S% N[Java] 纯文本查看 复制代码 @Component
public class MultiStepJobDemo {
@Resource
private JobBuilderFactory jobBuilderFactory;
@Resource
private StepBuilderFactory stepBuilderFactory;
@Bean
public Job multiStepJob() {
// 根据上一个步骤状态执行下一步
return jobBuilderFactory.get("multiStepJob2")
.start(step1())
.on(ExitStatus.COMPLETED.getExitCode()).to(step2())
.from(step2())
.on("COMPLETED").to(step3())
.from(step3()).end()
.build();
// return jobBuilderFactory.get("multiStepJob")
// .start(step1())
// .next(step2())
// .next(step3())
// .build();
}
private Step step1() {
return stepBuilderFactory.get("step1")
.tasklet((stepContribution, chunkContext) -> {
System.out.println("执行步骤一操作。。。");
return RepeatStatus.FINISHED;
}).build();
}
private Step step2() {
return stepBuilderFactory.get("step2")
.tasklet((stepContribution, chunkContext) -> {
System.out.println("执行步骤二操作。。。");
return RepeatStatus.FINISHED;
}).build();
}
private Step step3() {
return stepBuilderFactory.get("step3")
.tasklet((stepContribution, chunkContext) -> {
System.out.println("执行步骤三操作。。。");
return RepeatStatus.FINISHED;
}).build();
}
}
# v8 Q$ d [% o4 @- c5 G- D( u; H
' D$ m# H7 y) K# }$ _
! C/ G) k$ `2 A+ f [! g8 W |