본문으로 건너뛰기

002 — Backlog: Push Delivery Reporting (Client-Side)

출처 플랜: docs/development/plans-archive/002-push-delivery-reporting/ 등록일: 2026-03-21 검증 등급: A- (🟢 양호)

배경

dha-sleep-api에서 agentz-studio platform으로 push delivery 상태를 보고하는 기능 구현 완료. 테스트 부재와 기존 코드의 retry 미작동 문제가 후속 조치로 남음.

High Priority

1. PushDeliveryReporterService 단위 테스트

우선순위: P1

best-effort HTTP 서비스에 대한 단위 테스트 작성:

  • agentz.enabled=false 시 early return
  • fetch 성공 (200) 시 debug 로그
  • fetch 실패 (4xx/5xx) 시 warn 로그
  • fetch timeout (5s) 시 catch 동작
  • optional 필드 누락 시 body에서 제외 확인

관련 코드: apps/dha-sleep-api/src/app/push/push-delivery-reporter.service.ts

Medium Priority

2. Bull retry 미작동 문제 분석 및 수정

우선순위: P2

기존 push-job.processor.ts에서 첫 실패 시 DB status를 FAILED로 변경(line 182-192)한 후 throw(line 213)로 Bull retry를 트리거하지만, retry attempt 2에서는 push.status !== SCHEDULED 체크(line 63)에 걸려 "already processed"로 성공 처리된다. 결과적으로 Bull의 3회 retry 설정이 사실상 동작하지 않음.

수정 방향:

  • 실패 시 status를 FAILED 대신 SCHEDULED로 유지하고 metadata에만 failure 기록
  • 또는 retry attempt에서 FAILED 상태도 재처리하도록 status 체크 수정

관련 코드: apps/dha-sleep-api/src/app/push/push-job.processor.ts:63, 182-213

참고

  • Plan Archive
  • [agentz-studio Plan 120](Push Delivery Monitoring Platform — platform-side)