Java프로그래밍

[Spring batch] 배치 실행시 chunk 방식과 tasklet 방식의 배치를 종료 처리하는 방법(StepConstribution)

스프링배치를 개발하다보니 중간에 배치를 종료하려면 어떻게하지? throw new RuntimeException 처리하면되나?

Chunk 방식에서 종료

ItemProcessor에서 조건에 따라 return null를 하게되면 다음 단계인 writer로 가지않고 종료된다.

Tasklet 방식에서 종료

타스크렛 방식은 StepConstribution을 사용하면 조건에 따라  종료처리할 수 있다.

processor에서

contribution.setExitStatus(ExitStatus.FAULED);

return RepeatStatus.FINISH;

처리하고

Jobconfig에서 on을 써서 fail코드값이 넘어올때 end()를 실행하여 종료처리가 가능하다.

    public Job practiceJob(){
        return jobBuilderFactory.get(“practiceJob”)
                .start(this.practiceStep())
                            .build();
                }

.on(ExitStatus.FAILED.getExitCode())

.end()

.next()

.next()

.end()

.build();

error: Content is protected !!