YouTube Analytics API 오류 처리조건 추가

feature-dashboard
김성경 2026-03-26 13:53:43 +09:00
parent a75ae34428
commit 01c1cacb84
2 changed files with 11 additions and 2 deletions

View File

@ -143,8 +143,8 @@ class DataProcessor:
monthly_data = []
audience_data = self._build_audience_data(
raw_data.get("demographics", {}),
raw_data.get("region", {}),
raw_data.get("demographics") or {},
raw_data.get("region") or {},
)
logger.debug(
f"[DataProcessor.process] SUCCESS - "

View File

@ -141,6 +141,9 @@ class YouTubeAnalyticsService:
results = await asyncio.gather(*tasks, return_exceptions=True)
# 에러 체크 (YouTubeAuthError, YouTubeQuotaExceededError는 원형 그대로 전파)
# demographics(index 5)는 YouTubeAPIError 시 None으로 허용 (YouTube 서버 간헐적 오류 대응)
OPTIONAL_INDICES = {5, 6} # demographics, region
results = list(results)
for i, result in enumerate(results):
if isinstance(result, Exception):
logger.error(
@ -148,6 +151,12 @@ class YouTubeAnalyticsService:
)
if isinstance(result, (YouTubeAuthError, YouTubeQuotaExceededError)):
raise result
if i in OPTIONAL_INDICES and isinstance(result, YouTubeAPIError):
logger.warning(
f"[YouTubeAnalyticsService] 선택적 API 호출 {i+1}/7 실패, None으로 처리: {result}"
)
results[i] = None
continue
raise YouTubeAPIError(f"데이터 조회 실패: {result.__class__.__name__}")
logger.debug(