Files
DinQuant/backend_api_python/app/utils/http.py
T

42 lines
950 B
Python
Raw Normal View History

2025-12-29 03:06:49 +08:00
"""
HTTP 工具模块
"""
import requests
from requests.adapters import HTTPAdapter
from urllib3.util.retry import Retry
def get_retry_session(
retries: int = 3,
backoff_factor: float = 0.5,
status_forcelist: tuple = (500, 502, 503, 504)
) -> requests.Session:
"""
获取带重试机制的 HTTP Session
Args:
retries: 重试次数
backoff_factor: 重试间隔因子
status_forcelist: 需要重试的 HTTP 状态码
Returns:
配置好的 Session 实例
"""
session = requests.Session()
retry = Retry(
total=retries,
read=retries,
connect=retries,
backoff_factor=backoff_factor,
status_forcelist=status_forcelist,
)
adapter = HTTPAdapter(max_retries=retry)
session.mount('http://', adapter)
session.mount('https://', adapter)
return session
# 全局共享 Session
global_session = get_retry_session()