[스프링 배치] 오류 던지기 (throw new Exception)

반응형
728x90
반응형

스텝 실행 중 오류 던지기

스프링 배치는 예외가 발생하면 기본적으로 스텝 및 잡이 실패한것으로 간주한다. 따라서 아래 예제처럼 throw Exception 에 의해 잡은 FAILED(실패) 상태로 중지된다. 스프링 배치는 잡이 중지되면 현재 청크를 롤백하고, 성공적으로 완료한 작업까지 커밋하고, 재시작 시에는 중단됐던 부분을 찾아낸다.

private Transaction process(FieldSet fieldSet) {
        if(this.recordCount == 25) {
            throw new ParseException("This isn't what I hoped to happen");
        }
        
        ...
}

 

오류를 던짐으로써 해당 스텝은 ExitStatus.FAILED 상태로 스텝이 완료되지 않았다. 실제로 예외가 던져지게 되면 스텝을 통과하고 스텝, 잡에는 FAILED 상태로 남게된다.  스프링 배치는 스텝이 FAILED 로 식별되면 해당 스텝을 처음부터 다시 시작하지 않는다. 스프링 배치는 예외가 발생할때 어떤 청크가 처리중이었는지 기억하기 때문에 잡이 재시작되면 중단됐던 부분을 가져온다.

 

관련 내용 참고

https://godekdls.github.io/Spring%20Batch/domainlanguage/

▶ 3.3 ExecutionContext 문단 내용

 

 

반응형

Designed by JB FACTORY