test: conn_limiter 差异覆盖与导入清理
Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
@@ -6,7 +6,7 @@ from fastapi import APIRouter, WebSocket, WebSocketDisconnect
|
||||
from app.engine.models import ConversationSource, ConversationStatus
|
||||
from app.engine.routes.runtime import get_runtime
|
||||
from app.engine.services.conn_limiter import DEFAULT_WS_CONN_LIMIT
|
||||
from app.engine.services.conn_limiter import limiter as conn_limiter
|
||||
from app.engine.services.conn_limiter import limiter
|
||||
from app.engine.services.conversation import ConversationManager
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
@@ -27,7 +27,7 @@ async def ws_chat(websocket: WebSocket):
|
||||
|
||||
limit = runtime.config.data["engine"].get(
|
||||
"ws_conn_limit", DEFAULT_WS_CONN_LIMIT)
|
||||
if not conn_limiter.try_acquire(runtime.config.slug, client_ip, limit=limit):
|
||||
if not limiter.try_acquire(runtime.config.slug, client_ip, limit=limit):
|
||||
await websocket.close(code=1013, reason="too many connections")
|
||||
return
|
||||
|
||||
@@ -123,4 +123,4 @@ async def ws_chat(websocket: WebSocket):
|
||||
finally:
|
||||
# Task 8: 正常关闭与异常断开都归还名额——acquire 成功后所有路径
|
||||
# 必经此处,不泄漏(accept 失败/循环中抛错同样覆盖)
|
||||
conn_limiter.release(runtime.config.slug, client_ip)
|
||||
limiter.release(runtime.config.slug, client_ip)
|
||||
|
||||
Reference in New Issue
Block a user