YouTube Analytics API 오류 처리조건 추가
parent
a75ae34428
commit
01c1cacb84
|
|
@ -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 - "
|
||||
|
|
|
|||
|
|
@ -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(
|
||||
|
|
|
|||
Loading…
Reference in New Issue