스케쥴링

  • 지정된 시간이나 정기적인 간격으로 작업을 실행할 수 있는 기능

    전략

    1. TaskScheduler

  • 스프링 프레임워크의 일부이며, 작업 스케쥴링을 위한 더 높은 수준의 추상화를 제공한다.
  • TaskScheudlerschedule 메소드로 예약할 수 있다.
  • @Scheduled같은 어노테이션으로도 가능하다.

    2. Quartz

  • 더 복잡한 스케쥴링을 지원
  • 스프링 배치 작업을 지정하는 Quartz의 job을 지정할 수 있다.
  • 서버 재시작 후에도 계속 실행할 수 있다.
  • 클러스터 환경에서 수행할 수도 있다.
  • 복잡한 스케쥴링

트랜잭션

  • 롤백 및 트랜잭션 관리는 재시도 및 건너뛰기에서 중요한 역할을 한다.
  • 데이터의 일관성과 무결성을 보장한다.
  • 트랜잭션을 기반으로 청크에 대한 트랜잭션을 구분한다.
  • 재시도 기준
    • 항목이 실패하고 재시도를 트리거하면, 트랜잭션은 현재 청크 처리 끝에서 롤백되어 데이터 일관성을 유지한다.
    • 모든 재시도가 실패하면 다음 항목으로 넘어가며 실패를 기록한다.
  • 건너뛰기
    • 복구 불가능할 것으로 보면 건너뛰고 현재 청크를 롤백한다.