인프런 커뮤니티 질문&답변

김동연님의 프로필 이미지
김동연

작성한 질문수

[스프링 배치 입문] 예제로 배우는 핵심 Spring Batch

여러개의 step 구동 및 실행 상태에 따른 분기처리

조건별 분기 처리시 질문있습니다

작성

·

165

0

.start(conditionalStartStep).on("FAILED").to(conditionalFailedStep)

.from(conditionalStartStep).on("COMPLETED").to(conditionalCompletedStep)

.from(conditionalStartStep).on("*").to(conditionalAllStep)

 

이때 오류 없이 성공하면 conditionalCompletedStep

실패하게 되면 conditionalFailedStep 가게 되는데

마지막 줄의 "*" 표시는 어떨때 동작을 하게 만들 수 있을까요?

 

언뜻 보기에는 모든 상황에 대해서 발생하는거 처럼 보이는데 쉽사리 이해가 가지 않습니다

답변 1

0

MJ코딩님의 프로필 이미지
MJ코딩
지식공유자

동연님 안녕하세요 🙂 답변이 조금 늦어져서 죄송합니다ㅠㅠ

FAILED, COMPLETED는 실패와 성공 처리를 위해서 사용이 되어지는데요.

조금 더 복잡한 작업으로 인해서 분기 처리를 커스텀을 해주실 수도 있어요. 예를 들어 step에서 개발자가 정한 CONTINUABLE 문자열 코드를 리턴 하게 된다면, 위에서 예시 에서는 * 로 분기를 하게 되겠습니다.

리턴하는 방법은 아래의 코드를 참고해주세요

contribution.setExitStatus(new ExitStatus("CONTINUABLE"));
return RepeatStatus.FINISHED;

리턴을 할 때 상태 코드를 CONTINUABLE을 설정해주시면, 분기 처리 시 CONTINUABLE 값을 받으실 수 있겠습니다.

참고 부탁드리겠습니다.

감사합니다 :)

김동연님의 프로필 이미지
김동연

작성한 질문수

질문하기