업데이트

This commit is contained in:
2025-12-09 21:39:23 +09:00
parent dd9acf62a3
commit 37a150bd0d
35 changed files with 5587 additions and 493 deletions

View File

@@ -1,7 +1,8 @@
import os
import threading
import time
import requests
from .common import logger
__all__ = ["send_telegram", "send_telegram_with_retry", "report_error", "send_startup_test_message"]
@@ -53,6 +54,7 @@ def send_telegram_with_retry(
def send_telegram(token: str, chat_id: str, text: str, add_thread_prefix: bool = True, parse_mode: str = None):
"""
텔레그램 메시지를 한 번 전송합니다. 실패 시 예외를 발생시킵니다.
WARNING: 이 함수는 예외 처리가 없으므로, 프로덕션에서는 send_telegram_with_retry() 사용 권장
"""
if add_thread_prefix:
thread_name = threading.current_thread().name
@@ -70,10 +72,15 @@ def send_telegram(token: str, chat_id: str, text: str, add_thread_prefix: bool =
payload["parse_mode"] = parse_mode
try:
resp = requests.post(url, json=payload, timeout=10)
# ⚠️ 타임아웃 증가 (20초): SSL handshake 느림 대비
resp = requests.post(url, json=payload, timeout=20)
resp.raise_for_status() # 2xx 상태 코드가 아니면 HTTPError 발생
logger.debug("텔레그램 메시지 전송 성공: %s", text[:80])
return True
except (requests.exceptions.Timeout, requests.exceptions.ConnectionError) as e:
# 네트워크 오류: 로깅하고 예외 발생
logger.warning("텔레그램 네트워크 오류 (타임아웃/연결): %s", e)
raise
except requests.exceptions.RequestException as e:
logger.warning("텔레그램 API 요청 실패: %s", e)
raise # 예외를 다시 발생시켜 호출자가 처리하도록 함