사장님 입점신청 자동승인 주기를 10분에서 10초로
두줄요약
자동승인 대기 지연을 줄이기 위해 아웃박스 큐를 걷어내고 단일 폴링 구조로 바꿨습니다. 후보 조회와 재시도를 분리해 외부 부하는 유지한 채 처리 시작 시간을 10초 이내로 개선했습니다.
핵심 내용
- 자동승인 대상 건의 처리 시작 지연을 10분 단위에서 10초 이내로 줄인 개선 사례
- 기존 2단계 스케줄러와 아웃박스 큐를 제거하고, 요청 상태 테이블과 처리 상태 테이블을 기준으로 단일 폴링 구조로 전환
- 후보 조회를 가볍게 하고, 선점·중복 방지·재시도 시각 관리를 분리해 외부 시스템 부하를 유지한 채 주기만 단축
구조와 흐름
- 요청 테이블에서 자동승인 후보를 조회하고, 상태 테이블로 IN_PROGRESS 와 RETRY_WAITING 을 관리
- 처리 가능한 건만 선점해 상세 조회와 외부 연동을 수행하고, 성공 시 상태 행을 삭제
- 재시도 대기 건은 nextRetryTime 기준으로 제외해 신규 건이 대기열을 잠식하지 않도록 조정
주의할 점
- 폴링 주기와 재시도 주기를 분리하지 않으면 외부 조회 부하가 60배로 증가할 수 있음
- 읽기 복제본 지연으로 인한 중복 후보 노출을 전제로 락과 상태 확인으로 방어 필요
- 다수 워커가 동시에 실행되므로 cron 보다 fixedDelay 와 초기 지연 랜덤화가 유리



