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

이화평님의 프로필 이미지
이화평

작성한 질문수

스프링 배치

FlowJob - 개념 및 API 소개

FlowJob - 개념 및 API 소개 강의 질문

작성

·

190

0

FlowJob - 개념 및 API 소개 강의 질문드립니다.

  1. Step1이 실패했을 경우 Step2를 실행하도록 한 것은 이해했습니다.

  2. Step1을 실패시키더라도 Step2까지 실행이되며 Job도 COMPLETED 상태인 것 도 이해했습니다.

근데 여기서, 똑같은 JOB을 실행하면 Job Instance가 이미 존재한다는 예외가 아닌 Step already complete or not restartable, so no action to execute: 이라는 메시지가 나오는데요. 이제까지 알기론 Job Execution이 실패한 경우에만 같은 job 파라미터로 실행할 수 있는 걸로 알고 있는데요.

FlowJob의 경우는, Job Execution이 COMPLETED 상태여도 StepExecution까지 확인하는건가요?

답변 1

0

정수원님의 프로필 이미지
정수원
지식공유자

질문하신 것 처럼 동일한 JOB 을 실행하면 아래와 같은 예외가 발생하는 것이 맞습니다.

다만 조건을 보면 job.isRestartable() 를 체크하고 있습니다.

Job 은 기본적으로 재실행이 가능하도록 되어 있습니다. 그래서 아래 예외를 지나쳐 버립니다.

만약 Job 의 재시작을 false 로 설정했다면 아래 예외가 발생합니다.

image

그리고 나서 아래 처럼 Step 의 재 실행을 확인하게 됩니다.

image위를 보시면 Job 이 완료된 상태에서 Step 의 재실행이 false 라면 로그가 출력됩니다.

기본적으로 Step 은 재실행이 false 로 설정되어 있습니다.

이건 FlowJob 이기 때문에 나타나는 현상이 아님을 알 수 있습니다.

이화평님의 프로필 이미지
이화평

작성한 질문수

질문하기