Skip to content

[FEATURE] 저장 링크 주간 재검사 스케줄러 추가#61

Open
sunm2n wants to merge 1 commit into
devfrom
feat/#45-re-screening
Open

[FEATURE] 저장 링크 주간 재검사 스케줄러 추가#61
sunm2n wants to merge 1 commit into
devfrom
feat/#45-re-screening

Conversation

@sunm2n

@sunm2n sunm2n commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

개요

저장한 링크가 시간이 지나 위험해질 수 있어, 매주 저장 링크를 FastAPI 분석 엔진으로 재검사하는 스케줄러를 추가합니다. (Issue #45)

작업 내용

  • 저장 링크가 참조하는 Analysis를 매주 재검사하는 SavedLinkRecheckScheduler/Service/Dispatcher 추가 (기본 매주 월 04:00)
  • 마지막 검사 후 N일(기본 7일) 지난 대상만 findStaleSavedAnalyses로 조회 — last_checked_at 없으면 analyzed_at 폴백, keyset(cursor) 페이지네이션
  • 지난 재검사 실패(FAILED) 건도 포함해 다음 주기에 재시도 (일시 장애로 모니터링 이탈 방지)
  • 재검사 시 Analysis를 QUEUED로 리셋·requestId 재발급·오류 필드 초기화 후 기존 AnalysisAsyncRunner로 위임 (콜백 수용 조건 충족)
  • 재검사 성공 콜백 시 기존 AnalysisReason 삭제 후 재저장하여 중복 누적 방지
  • link.recheck cron/stale-days 설정 추가

비고

  • FastAPI 계약(/api/v1/analyze) 및 DB 마이그레이션 변경 없음
  • 대량 dispatch 전용 executor 분리는 팔로업(TODO 주석)으로 남김
  • 후속: 유저별 재검사 run 집계 → 알림/결과 화면 API (별도 작업)

테스트

  • 서비스/디스패처/스케줄러 단위 테스트 + findStaleSavedAnalyses Testcontainers 통합 테스트
  • 전체 스위트 통과

- 저장 링크가 참조하는 Analysis를 매주 FastAPI로 재검사하는 스케줄러 추가
- 마지막 검사 후 N일(기본 7일) 지난 대상만 keyset 페이지네이션으로 조회
- 지난 재검사 실패(FAILED) 건도 포함해 다음 주기에 재시도
- 재검사 시 Analysis를 QUEUED로 리셋·requestId 재발급·오류 필드 초기화 후 기존 AnalysisAsyncRunner로 위임
- 재검사 성공 콜백 시 기존 AnalysisReason 삭제 후 재저장하여 중복 누적 방지
- link.recheck cron/stale-days 설정 추가
- 재검사 서비스/디스패처/스케줄러 단위 테스트 및 findStaleSavedAnalyses 통합 테스트 추가

IssueNum #45
@sunm2n sunm2n changed the title [Feat] 저장 링크 주간 재검사 스케줄러 추가 [FEATURE] 저장 링크 주간 재검사 스케줄러 추가 Jul 14, 2026
@sunm2n
sunm2n requested review from kbh0218 and minsoo0506 July 14, 2026 01:55
@sunm2n sunm2n self-assigned this Jul 14, 2026
@sunm2n sunm2n added the feature 새로운 기능/특징 label Jul 14, 2026
@sunm2n sunm2n linked an issue Jul 14, 2026 that may be closed by this pull request
3 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature 새로운 기능/특징

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEATURE] 일주일 단위 재검사 스케줄러 추가

1 participant