YouTube Analytics API 오류 처리조건 추가
parent
a75ae34428
commit
01c1cacb84
|
|
@ -143,8 +143,8 @@ class DataProcessor:
|
||||||
monthly_data = []
|
monthly_data = []
|
||||||
|
|
||||||
audience_data = self._build_audience_data(
|
audience_data = self._build_audience_data(
|
||||||
raw_data.get("demographics", {}),
|
raw_data.get("demographics") or {},
|
||||||
raw_data.get("region", {}),
|
raw_data.get("region") or {},
|
||||||
)
|
)
|
||||||
logger.debug(
|
logger.debug(
|
||||||
f"[DataProcessor.process] SUCCESS - "
|
f"[DataProcessor.process] SUCCESS - "
|
||||||
|
|
|
||||||
|
|
@ -141,6 +141,9 @@ class YouTubeAnalyticsService:
|
||||||
results = await asyncio.gather(*tasks, return_exceptions=True)
|
results = await asyncio.gather(*tasks, return_exceptions=True)
|
||||||
|
|
||||||
# 에러 체크 (YouTubeAuthError, YouTubeQuotaExceededError는 원형 그대로 전파)
|
# 에러 체크 (YouTubeAuthError, YouTubeQuotaExceededError는 원형 그대로 전파)
|
||||||
|
# demographics(index 5)는 YouTubeAPIError 시 None으로 허용 (YouTube 서버 간헐적 오류 대응)
|
||||||
|
OPTIONAL_INDICES = {5, 6} # demographics, region
|
||||||
|
results = list(results)
|
||||||
for i, result in enumerate(results):
|
for i, result in enumerate(results):
|
||||||
if isinstance(result, Exception):
|
if isinstance(result, Exception):
|
||||||
logger.error(
|
logger.error(
|
||||||
|
|
@ -148,6 +151,12 @@ class YouTubeAnalyticsService:
|
||||||
)
|
)
|
||||||
if isinstance(result, (YouTubeAuthError, YouTubeQuotaExceededError)):
|
if isinstance(result, (YouTubeAuthError, YouTubeQuotaExceededError)):
|
||||||
raise result
|
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__}")
|
raise YouTubeAPIError(f"데이터 조회 실패: {result.__class__.__name__}")
|
||||||
|
|
||||||
logger.debug(
|
logger.debug(
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue