You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
기사 ID로 퀴즈를 조회합니다. Redis 캐시 → PostgreSQL quiz 테이블 → 외부 AI 서버 순으로 데이터를 찾고
캐시 미스 시 분산 락으로 동시에 AI가 여러 번 호출되는 것을 줄입니다.
락을 못 잡은 요청은 짧게 폴링한 뒤 캐시를 읽습니다. AI로 생성한 결과는 Redis에 두고 DB에는 비동기로 저장합니다.
🛠 작업 목록
GET /api/quiz/{articleId}
Redis quiz:{articleId} TTL 및 lock:quiz:{articleId} 락
@Async Write-behind 저장 및 중복 시 DataIntegrityViolation 무시
기사 없음 ErrorCode.ARTICLE_NOT_FOUND, 폴링 타임아웃 QUIZ_GENERATION_TIMEOUT
✨ 퀴즈 — 기사별 생성·Redis 캐시·분산 락·DB 영속화
📌 설명
기사 ID로 퀴즈를 조회합니다. Redis 캐시 → PostgreSQL
quiz테이블 → 외부 AI 서버 순으로 데이터를 찾고캐시 미스 시 분산 락으로 동시에 AI가 여러 번 호출되는 것을 줄입니다.
락을 못 잡은 요청은 짧게 폴링한 뒤 캐시를 읽습니다. AI로 생성한 결과는 Redis에 두고 DB에는 비동기로 저장합니다.
🛠 작업 목록
GET /api/quiz/{articleId}quiz:{articleId}TTL 및lock:quiz:{articleId}락@AsyncWrite-behind 저장 및 중복 시DataIntegrityViolation무시ErrorCode.ARTICLE_NOT_FOUND, 폴링 타임아웃QUIZ_GENERATION_TIMEOUT