Skip to content

feat: 푸시 리마인더 삭제와 예약 발송 안정화 구현 - #144

Merged
mike7643 merged 3 commits into
mainfrom
feat/push-reminder-delete-api
Sep 1, 2026
Merged

mike7643 merged 3 commits into
mainfrom
feat/push-reminder-delete-api

Conversation

@mike7643

@mike7643 mike7643 commented Sep 1, 2026 •

Copy link
Copy Markdown
Collaborator

✨ 작업 내용 한 줄 요약

  • 리마인더 삭제 이후 대기 중인 푸시 발송을 차단하고 예약 작업의 중복 처리와 장애 복구를 보장

🛠️ 작업 내용

  • 현재 기기 소유 리마인더 삭제 API 구현 및 멱등 200 응답 처리
  • 삭제 시 시작, 종료 전, 종료 예약 작업 중 PENDING 상태를 CANCELLED로 전환
  • 예약 작업 상태를 PENDING, DISPATCHING, SENT, DISCARDED, CANCELLED로 관리
  • 조건부 DB 선점과 30초 lease 복구로 중복 실행 및 서버 중단 뒤 재시도 처리
  • 발송 가능 작업 조회를 findDueJobs와 PageRequest로 정리
  • 삭제, 선점, lease 복구, 발송 처리 테스트 보강

🧠 기술적 의사결정

  • PENDING에서 DISPATCHING으로 전환된 시점을 발송 시작 경계로 정의. 삭제는 아직 외부 전송을 시작하지 않은 PENDING 작업만 취소
  • lease 만료 작업을 재시도해 발송 유실을 줄이는 at-least-once 정책 적용. 장애 직후 드물게 중복 푸시가 가능하므로 클라이언트 중복 표시 방지 고려 필요

@mike7643
mike7643 requested a review from buddle031 as a code owner September 1, 2026 15:16
@mike7643
mike7643 merged commit f3acf2f into main Sep 1, 2026
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant