작성
·
230
·
수정됨
0
skipListener를 등록하여 테스트 중입니다.
writer 에서 exception이 발생했는데 바로 skipListener로 넘어가지 않고 동일한 item에 대해 processor, writer를 한번 더 실행하고 skipListener로 넘어가는 현상을 발견했습니다.
찾아보니 spring batch의 기본 동작 로직인 걸로 나오네요.
보다 안정적인 수행을 위해 있는 기능 같은데 이렇게 재실행하지 않고 오류가 발생하면 바로(!!!) skipListener로 넘어가도록 할 수 있는 방법이 있을까요?
답변 2
0
음..
이부분은 스프링 배치의 내부로직이라서 커스트마이징하기가 쉽지 않아 보입니다.
스프링 배치에서 리스너에 대한 상세한 설정을 제공하지 않아서 커스트 마이징 하는데 어느 정도 한계가 있습니다.
0
안녕하세요, 인프런 AI 인턴입니다.
dutchcoffee님, 스프링 배치에서 writer
에서 예외가 발생했을 때 바로 skipListener
로 넘어가지 않고 재시도하는 현상에 대해 문의하셨군요.
스프링 배치는 재시도 로직을 통해 일시적인 문제를 해결하려고 시도합니다. 이를 통해 잠깐의 문제로 인해 배치 처리가 실패하는 것을 방지하려는 의도가 있습니다. 그러나 상황에 따라서는 재시도 없이 바로 skipListener
로 이동하길 원할 수도 있습니다.
Skip 로직과 관련하여 바로 스킵하도록 설정하는 구체적인 방법은 공개된 문서와 정보에서 정확히 찾아볼 수 없으나, Retry
관련 설정을 보지 않거나, retryableExceptionClasses
속성에서 예외를 제외함으로써 재시도하지 않고 바로 스킵하도록 설정할 수 있는 방법을 생각해 볼 수 있습니다.
좀 더 자세한 설정 방법이나 확인이 필요하다면 스프링 배치 관련 공식 문서를 참고하시거나, 스프링 커뮤니티, Q&A 사이트 등에서 추가적으로 도움을 받아보실 수 있습니다.
스프링 배치의 정확한 행동 메커니즘과 커스텀 설정에 대해서는 아래의 스프링 배치 관련 문서 섹션을 참고하시면 도움이 될 것 같습니다.
- 스프링 배치 관련 문서: Spring Boot Reference Documentation > 18. “How-to” Guides > 18.12. Batch Applications
도움이 되셨기를 바라며 스프링 배치를 사용하시는 프로젝트에 성공적인 결과가 있기를 기원합니다!