feat(proxy): worker 退出时优雅关闭 tunnel 连接,提升 max-requests 默认值

- TunnelManager 新增 shutdown_all 方法,drain 飞行中请求后发送 GoAway
- shutdown 期间标记 draining 拒绝新请求进入
- gunicorn max-requests 默认值从 4000 提升到 50000,减少不必要的 worker 重启
This commit is contained in:
fawney19
2026-03-01 00:54:37 +08:00
parent 005cc3e388
commit 20ed9cd123
4 changed files with 62 additions and 3 deletions

View File

@@ -101,14 +101,19 @@ async def _on_startup() -> None:
async def _on_shutdown() -> None:
"""停止心跳检测调度器"""
"""优雅关闭 tunnel 连接并停止心跳检测调度器"""
import logging
from src.services.proxy_node.health_scheduler import get_proxy_node_health_scheduler
from src.services.proxy_node.tunnel_manager import get_tunnel_manager
from src.utils.task_coordinator import StartupTaskCoordinator
logger = logging.getLogger("aether.modules.proxy_nodes")
# 先向所有 tunnel 连接发送 GoAway让 proxy 端立即重连到其他 worker
manager = get_tunnel_manager()
await manager.shutdown_all()
from src.clients import get_redis_client
redis_client = await get_redis_client()