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


