Search

Spring Batch를 사용하여 스케쥴러 재구성하기

Tags
Spring Batch
Date
2024/03/21

1. 개요

Spring Scheduler와 Spring Batch를 조합해서 다시 한번 설계를 진행해보겠습니다.

2. 시나리오

시나리오는 다음과 같습니다.
1.
NotificationTrigger는 정해진 시간마다 발송해야 되는 Notification이 없는지 확인합니다.
a.
모니터링은 Spring Scheduler을 통해 구현됩니다.
2.
만약 발송해야 하는 Notification이 있다면 해당 객체를 불러와 SMS 발송 DB에 저장합니다.
a.
해당 작업은 Spring Batch로 진행됩니다.
b.
따로 아이템을 처리하는 과정이 필요하지 않으니 이 때는 ReaderWriter만 구현합니다.
3.
마찬가지로 발송 DB를 모니터링 하고 있는 NotificationDispatcher이 이를 감지합니다.
a.
스프링 배치를 통해 작업을 이어나갑니다.
b.
Reader : 발송 DB로 부터 아이템을 조회
c.
Processor : 타겟 값에 따라 환자를 분리하고 문자를 발송
d.
Writer : 발송 후 로그를 작성
4.
마지막으로 재발송 스텝에서 발송에 실패한 아이템들을 조회하고 재발송합니다.

2-1. Database의 구성 요소

5. Reference