INNER CODE UNIT · Python

_force_close_old_client

CassiopeiaCode/q2api · app.py:244

                async def _force_close_old_client(client_to_close):
                    try:
                        await asyncio.sleep(120)  # 等待2分钟
                        logger.info("[连接回收] 开始强制关闭旧客户端...")
                        
                        # 强制关闭,不等待正在进行的请求
                        try:
                            # 尝试优雅关闭,但设置短超时
                            await asyncio.wait_for(client_to_close.aclose(), timeout=2.0)
                            logger.info("[连接回收] 旧客户端已成功关闭")
                        except asyncio.TimeoutError:
                            logger.warning("[连接回收] 旧客户端关闭超时,尝试强制终止...")
                            # 超时后尝试访问底层连接池强制关闭
                            try:
                                # httpx 内部结构:client -> _transport -> _pool
                                if hasattr(client_to_close, '_transport') and client_to_close._transport:
                                    transport = client_to_close._transport
                                    # 尝试关闭底层连接池

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…