INNER CODE UNIT · Python
_close_global_client
CassiopeiaCode/q2api · app.py:189
async def _close_global_client():
global GLOBAL_CLIENT
if GLOBAL_CLIENT:
await GLOBAL_CLIENT.aclose()
GLOBAL_CLIENT = None
async def _recycle_global_client():
"""定期回收并重建全局HTTP客户端,避免死连接累积
策略:先创建新客户端,等待2分钟后再关闭旧客户端,确保平滑过渡
"""
# 跟踪待关闭的旧客户端,避免累积
pending_close_clients = []
while True:
try:
await asyncio.sleep(60) # 每1分钟回收一次
logger.info("[连接回收] 开始回收全局HTTP客户端...")