step already complete or not restartable, so no action to execute: StepExecution: id=522687, version=3, name=empStep, status=COMPLETED, exitStatus=COMPLETED, readCount=1, filterCount=0, writeCount=1 readSkipCount=0, writeSkipCount=0, processSkipCount=0, commitCount=1, rollbackCount=0, exitDescription=
→ job parameter가 잘 입력 되었는지 확인하자.
job parameter를 아예 입력하지 않거나 null로 입력 하는 경우 첫 회차에는 잘 실행 되지만 두 번째부터 실행이 안된다.
job parameter 가 null일 때 중복 실행과 job parameter 값이 있을 때의 중복 실행 오류 출력 메시지가 다르다.
에러메시지를 직역하자면 이미 완료되거나 재시작할 수 없는 상태기 때문에 실행을 할 수 없다..인데 실제론 job parameter를 확인해보자.
A job instance already exists and is complete for parameters={requestDate=20231127}. If you want to run this job again, change the parameters.
→ 파라미터를 변경 후 다시 실행한다.
직역하면 이미 종료된 잡이 있어서 파라미터를 변경 후 다시 변경하라는 것이다.
어떤 job param이 있는지 확인하려면 job param 메타 테이블batch_job_execution_params
을 보면, 아래와 같이 동일한 파라미터로 실행 완료한 job이 존재한다.
테스트 환경이거나, 검증 배치 등 파라미터 변경 없이 중복 실행을 의도한 경우리면 중복 실행을 허용하도록 세팅할 수 있다.
중복을 허용하고 싶다면 📃spring batch job 중복 실행 세팅 방법 포스트 확인