작성
·
190
0
FlowJob - 개념 및 API 소개 강의 질문드립니다.
Step1이 실패했을 경우 Step2를 실행하도록 한 것은 이해했습니다.
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 로 설정했다면 아래 예외가 발생합니다.
그리고 나서 아래 처럼 Step 의 재 실행을 확인하게 됩니다.
위를 보시면 Job 이 완료된 상태에서 Step 의 재실행이 false 라면 로그가 출력됩니다.
기본적으로 Step 은 재실행이 false 로 설정되어 있습니다.
이건 FlowJob 이기 때문에 나타나는 현상이 아님을 알 수 있습니다.