사용자 도구

사이트 도구


springframework:batch:multithread

Spring Batch Multi Thread

  • Spring Framework Batch에서 throttleLimit으로 멀티 쓰레드 실행.
  • 단순히 쓰레드 갯수를 늘리는 방식. partitioning 과는 다름.
  • reader와 writer 는 thread safe해야 한다. → 즉, 공유 객체에 접근하지 말거나, synchronized로 접근해야 한다.
    • Spring Batch 가 제공해주는 reader 는 thread safe 한 경우가 많다
  • 어느 쓰레드의 상태로 상태 저장을 할지 결정할 수 없으므로 ItemReader에 대해 saveState=false 로 지정해야만 한다. 상태 저장이 안되니 실패 지점 재시작도 불가하다.
  • taskExecutor()throttleLimit()을 지정한다.
  • 보통 ThreadPool의 크기와 throtleLimit은 동일하게 지정한다.

참조

springframework/batch/multithread.txt · 마지막으로 수정됨: 2023/01/03 14:45 저자 kwon37xi