mirror of
https://github.com/ktds-dg0501/kt-event-marketing.git
synced 2025-12-06 10:06:24 +00:00
redis outer수정
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
860b8cc08f
commit
9e9c129c3c
@ -12,6 +12,7 @@ participant "Content Service" as Content
|
|||||||
participant "Distribution Service" as Dist
|
participant "Distribution Service" as Dist
|
||||||
participant "Kafka" as Kafka
|
participant "Kafka" as Kafka
|
||||||
database "Event DB" as EventDB
|
database "Event DB" as EventDB
|
||||||
|
database "Redis" as Redis
|
||||||
participant "외부 AI API" as AIApi
|
participant "외부 AI API" as AIApi
|
||||||
participant "이미지 생성 API" as ImageApi
|
participant "이미지 생성 API" as ImageApi
|
||||||
participant "배포 채널 APIs" as ChannelApis
|
participant "배포 채널 APIs" as ChannelApis
|
||||||
@ -42,16 +43,17 @@ AI -> EventDB: 과거 이벤트 데이터 조회\n(업종, 지역 기반 통계
|
|||||||
EventDB --> AI: 이벤트 통계 데이터
|
EventDB --> AI: 이벤트 통계 데이터
|
||||||
AI -> AIApi: 트렌드 분석 및 이벤트 추천 요청\n{목적, 업종, 지역, 과거데이터, 매장정보}
|
AI -> AIApi: 트렌드 분석 및 이벤트 추천 요청\n{목적, 업종, 지역, 과거데이터, 매장정보}
|
||||||
AIApi --> AI: 3가지 추천안 + 트렌드 요약\n(예: "여름철 시원한 음료 선호도 증가")
|
AIApi --> AI: 3가지 추천안 + 트렌드 요약\n(예: "여름철 시원한 음료 선호도 증가")
|
||||||
AI -> EventDB: 추천 결과 저장\n(3가지 추천안, 트렌드 요약 저장)
|
AI -> Redis: 추천 결과 캐싱\n(3가지 추천안, 트렌드 요약 저장)\nTTL: 24시간
|
||||||
EventDB --> AI: 저장 완료
|
Redis --> AI: 저장 완료
|
||||||
AI -> EventDB: Job 상태 업데이트\n(상태를 COMPLETED로 변경)
|
AI -> Redis: Job 상태 업데이트\n(상태를 COMPLETED로 변경)
|
||||||
|
note over AI, Redis: AI 추천 정보는 Redis에만 저장\n최종 선택 시 Event DB에 저장
|
||||||
|
|
||||||
group Polling으로 상태 확인
|
group Polling으로 상태 확인
|
||||||
loop 상태 확인 (최대 30초)
|
loop 상태 확인 (최대 30초)
|
||||||
FE -> Gateway: GET /jobs/{jobId}/status
|
FE -> Gateway: GET /jobs/{jobId}/status
|
||||||
Gateway -> Event: Job 상태 조회
|
Gateway -> Event: Job 상태 조회
|
||||||
Event -> EventDB: Job 상태 조회\n(jobId로 상태 및 결과 조회)
|
Event -> Redis: Job 상태 조회\n(jobId로 상태 및 결과 조회)
|
||||||
EventDB --> Event: {status, result}
|
Redis --> Event: {status, result}
|
||||||
|
|
||||||
alt Job 완료
|
alt Job 완료
|
||||||
Event --> Gateway: 200 OK\n{status: COMPLETED, recommendations, trendSummary}
|
Event --> Gateway: 200 OK\n{status: COMPLETED, recommendations, trendSummary}
|
||||||
@ -99,22 +101,14 @@ else 트렌디 스타일
|
|||||||
ImageApi --> Content: 트렌디 이미지 URL
|
ImageApi --> Content: 트렌디 이미지 URL
|
||||||
end
|
end
|
||||||
|
|
||||||
note over Content: Redis 캐시에 이미지 URL 저장\nJob 상태를 COMPLETED로 업데이트
|
note over Content: Redis 캐시에 이미지 URL 저장\nJob 상태를 COMPLETED로 업데이트\n\n이미지 URL은 Redis에만 저장됨\n최종 콘텐츠 선택 시 Event DB에 저장
|
||||||
|
|
||||||
Content -> Kafka: Publish to event-topic\nContentCreated\n{jobId, eventDraftId, imageUrls}
|
|
||||||
|
|
||||||
note over Event: Kafka Consumer 구독\ninner sequence 참조:\nevent-콘텐츠생성완료구독.puml
|
|
||||||
Kafka --> Event: ContentCreated 이벤트 수신
|
|
||||||
Event -> EventDB: 이미지 URL 저장\n(이벤트 초안 업데이트)
|
|
||||||
EventDB --> Event: 저장 완료
|
|
||||||
|
|
||||||
group Polling으로 상태 확인
|
group Polling으로 상태 확인
|
||||||
loop 상태 확인 (최대 30초)
|
loop 상태 확인 (최대 30초)
|
||||||
FE -> Gateway: GET /jobs/{jobId}/status
|
FE -> Gateway: GET /jobs/{jobId}/status
|
||||||
Gateway -> Event: Job 상태 조회
|
Gateway -> Event: Job 상태 조회
|
||||||
note over Event: Redis 캐시 조회\n(jobId로 상태 확인)
|
Event -> Redis: Job 상태 조회\n(jobId로 상태 및 이미지 URL 조회)
|
||||||
Event -> Event: Redis에서 Job 상태 조회
|
Redis --> Event: {status, imageUrls}
|
||||||
Event --> Event: {status, imageUrls}
|
|
||||||
|
|
||||||
alt Job 완료
|
alt Job 완료
|
||||||
Event --> Gateway: 200 OK\n{status: COMPLETED, imageUrls}
|
Event --> Gateway: 200 OK\n{status: COMPLETED, imageUrls}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user