#11 spring batch: SimpleFlow ex
This commit is contained in:
@@ -12,7 +12,7 @@ import org.springframework.batch.repeat.RepeatStatus;
|
|||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
||||||
@Configuration
|
//@Configuration
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class SimpleFlowConfiguration {
|
public class SimpleFlowConfiguration {
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,140 @@
|
|||||||
|
package io.springbatch.basic.flow;
|
||||||
|
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.batch.core.Job;
|
||||||
|
import org.springframework.batch.core.Step;
|
||||||
|
import org.springframework.batch.core.configuration.annotation.JobBuilderFactory;
|
||||||
|
import org.springframework.batch.core.configuration.annotation.StepBuilderFactory;
|
||||||
|
import org.springframework.batch.core.job.builder.FlowBuilder;
|
||||||
|
import org.springframework.batch.core.job.flow.Flow;
|
||||||
|
import org.springframework.batch.core.launch.support.RunIdIncrementer;
|
||||||
|
import org.springframework.batch.repeat.RepeatStatus;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class SimpleFlowExConfiguration {
|
||||||
|
|
||||||
|
private final JobBuilderFactory jobBuilderFactory;
|
||||||
|
private final StepBuilderFactory stepBuilderFactory;
|
||||||
|
|
||||||
|
/*
|
||||||
|
flow1 (step1, step2) COMPLETED -> flow2 (flow3 (step3, step4), step5, step6)
|
||||||
|
FAILED -> flow3 (step3, step4)
|
||||||
|
*/
|
||||||
|
@Bean
|
||||||
|
public Job batchJob() {
|
||||||
|
return jobBuilderFactory.get("batchJob")
|
||||||
|
.incrementer(new RunIdIncrementer())
|
||||||
|
.start(flow1())
|
||||||
|
.on("COMPLETED")
|
||||||
|
.to(flow2())
|
||||||
|
.from(flow1())
|
||||||
|
.on("FAILED")
|
||||||
|
.to(flow3())
|
||||||
|
.end()
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public Flow flow1() {
|
||||||
|
|
||||||
|
FlowBuilder<Flow> flowBuilder = new FlowBuilder<>("flow1");
|
||||||
|
|
||||||
|
flowBuilder
|
||||||
|
.start(step1())
|
||||||
|
.next(step2())
|
||||||
|
.end();
|
||||||
|
|
||||||
|
return flowBuilder.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public Flow flow2() {
|
||||||
|
|
||||||
|
FlowBuilder<Flow> flowBuilder = new FlowBuilder<>("flow2");
|
||||||
|
|
||||||
|
flowBuilder
|
||||||
|
.start(flow3())
|
||||||
|
.next(step5())
|
||||||
|
.next(step6())
|
||||||
|
.end();
|
||||||
|
|
||||||
|
return flowBuilder.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public Flow flow3() {
|
||||||
|
|
||||||
|
FlowBuilder<Flow> flowBuilder = new FlowBuilder<>("flow3");
|
||||||
|
|
||||||
|
flowBuilder
|
||||||
|
.start(step3())
|
||||||
|
.next(step4())
|
||||||
|
.end();
|
||||||
|
|
||||||
|
return flowBuilder.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public Step step1() {
|
||||||
|
return stepBuilderFactory.get("step1")
|
||||||
|
.tasklet((contribution, chunkContext) -> {
|
||||||
|
System.out.println("step1 was executed");
|
||||||
|
return RepeatStatus.FINISHED;
|
||||||
|
})
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public Step step2() {
|
||||||
|
return stepBuilderFactory.get("step2")
|
||||||
|
.tasklet((contribution, chunkContext) -> {
|
||||||
|
System.out.println("step2 was executed");
|
||||||
|
throw new RuntimeException("step2 was failed");
|
||||||
|
// return RepeatStatus.FINISHED;
|
||||||
|
})
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public Step step3() {
|
||||||
|
return stepBuilderFactory.get("step3")
|
||||||
|
.tasklet((contribution, chunkContext) -> {
|
||||||
|
System.out.println("step3 was executed");
|
||||||
|
return RepeatStatus.FINISHED;
|
||||||
|
})
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public Step step4() {
|
||||||
|
return stepBuilderFactory.get("step4")
|
||||||
|
.tasklet((contribution, chunkContext) -> {
|
||||||
|
System.out.println("step4 was executed");
|
||||||
|
return RepeatStatus.FINISHED;
|
||||||
|
})
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public Step step5() {
|
||||||
|
return stepBuilderFactory.get("step5")
|
||||||
|
.tasklet((contribution, chunkContext) -> {
|
||||||
|
System.out.println("step5 was executed");
|
||||||
|
return RepeatStatus.FINISHED;
|
||||||
|
})
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public Step step6() {
|
||||||
|
return stepBuilderFactory.get("step6")
|
||||||
|
.tasklet((contribution, chunkContext) -> {
|
||||||
|
System.out.println("step6 was executed");
|
||||||
|
return RepeatStatus.FINISHED;
|
||||||
|
})
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user