[스프링 배치] 오류 던지기 (throw new Exception)
- Coding/Spring Batch
- 2021. 9. 25.
반응형
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 문단 내용
반응형
'Coding > Spring Batch' 카테고리의 다른 글
[스프링 배치] resources/ 경로의 파일 읽어와 여러 방법으로 필드 매핑하기 (FieldSetMapper, LineTokenizer) (0) | 2021.10.01 |
---|---|
[스프링 배치] 잡의 재시작 방지/재시작 횟수제한/재실행 설정 방법 (0) | 2021.09.25 |
[스프링 배치] 스텝 중지시키기 setTerminateOnly() (0) | 2021.09.25 |
[스프링 배치] 쿼츠 Quartz 사용하여 배치 스케줄링 (0) | 2021.09.22 |
[스프링 배치] JobLauncherCommandLineRunner 모든 잡 실행 설정 제거 (0) | 2021.09.20 |