-
Notifications
You must be signed in to change notification settings - Fork 4
Description
📌 기능 설명
- 스케줄러 동시성 제어 설정 (서버 N대 돌릴 경우의 중복 처리 상황 방지)
- QueueScheduler.java에서 현재 canExecute 메서드는 get(조회) -> 비교 -> set(갱신) 순서로 동작
- 만약 서버가 3대(Scale-out)라면, 3대의 서버가 동시에 get을 수행하여 모두 "실행 가능"으로 판단할 수 있음
- 그리고 서버가 여러 대(Scale-out)일 때, canExecute를 동시에 통과해버리면 트래픽이 3배로 폭주하게 됨
- 이를 방지하기 위해 분산 락 적용
- DB/Redis 장애 시 스케줄러 중단 방지 처리
- 활성열 만료 토큰 정리 (사용자가 활성 상태가 되었는데 주문을 안 하고 나가버릴 경우, 만료된 토큰 정리하고, 활성열 카운트 갱신되도록 처리)
🎯 목적 / 기대 효과
실무 운영 환경(특히 다중 서버 환경 및 장애 상황)을 고려했을 때, 치명적인 예외 상황 방지 위한 목적
📋 구현 범위
- API 설계
- Service/Domain 변경
- DB 변경 여부
- 테스트 포함
🔗 관련 이슈(Optional)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request