작성
·
845
0
해당 강의에서 같은 파라미터로 job을 여러번 실행하기 위해 incrementer() API를 알려주셨는데요. 의문이 있습니다.
실제 업무 환경에서는 똑같은 파라미터로 계속해서 실행할 경우가 있습니다.
예를 들어 하루에 1시간 단위로 실행되어야 하는 job은 파라미터로 2022-01-01 과 같이 날짜 파라미터를 받아 실행하는 경우가 있는데요. 이때 같은 파라미터로 똑같은 job을 실행할 수 없으니 incrementer() 를 사용하면 해결될 것 같긴 한데, 만약 스프링 배치 어플리케이션이 재기동이 될 경우 id 값이 0으로 초기화 되는 문제가 발생합니다.
즉, 날짜 파라미터는 2022-01-01로 동일한데, incrementer()를 통해 1~10까지 수행했다가, 어플리케이션이 재시작되게 되면 incrementer()를 통해 다시 1부터 수행하기 때문에 같은 job을 실행할 수 없는 상황이 올 것 같습니다.
이런 문제는 어떻게 해결하나요..? incrementer()가 순차적으로 증가하는 값이 아니라 랜덤 값 같은 걸 반환하도록 해야할까요? 근데 이러한 방식도 중복을 100% 방지할 수는 없다고 생각합니다.
스프링 배치에서 지원하는 API가 따로 있나요? 강의 뒷 부분에 나오는지 궁금하네요.