Spring Batch - 22. Tasklet 기반 Step

출처

목차

Tasklet

Tasklet 은 Step 에서 실행되는 작업의 단위 중 하나

Tasklet 은 Step 내에서 실행되는 작업의 단위 중 하나며 보통 단일 작업을 수행하는데 사용합니다. TaskletStep 객체에 의해 반복적으로 수행되며 Tasklet 반환값에 따라 계속 수행하거나 종료합니다.

  • RepeatStatus : Taasklet 의 반복여부 상태 값
    • RepeatStatus.FINISHED : Tasklet 종료, RepeatStatus 를 null 로 반환하면 RepeatStatus.FINISHED 로 해석된다.
    • RepeatStatus.CONTINUABLE : Tasklet 반복

Tasklet 인터페이스

public interface Tasklet {

@Nullable
RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) throws Exception;
}
@Component
public class CustomTasklet implements Tasklet {

@Override
public RepeatStatus execute(StepContribution stepContribution, ChunkContext chunkContext) throws Exception {

System.out.println("stepContribution = " + stepContribution + ", chunkContext = " + chunkContext);

return RepeatStatus.FINISHED;
}
}
@Bean
public Step step1() {
return stepBuilderFactory.get("step1")
.tasklet(new Tasklet() {
@Override
public RepeatStatus execute(StepContribution stepContribution, ChunkContext chunkContext) throws Exception {
System.out.println("stepContribution = " + stepContribution + ", chunkContext = " + chunkContext);
return RepeatStatus.FINISHED;
}
})
.build();
}

@Bean
public Step step2() {
return stepBuilderFactory.get("step2")
.tasklet(customTasklet)
.build();
}
Share