From 4b838b5a6b4dd659028462330880660dfb452642 Mon Sep 17 00:00:00 2001 From: hmo Date: Mon, 10 Aug 2026 12:55:56 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20ocg=5Frouter=20single-threaded=20HTTPSer?= =?UTF-8?q?ver=20blocks=20all=20requests=20on=20large=20body=20=E2=80=94?= =?UTF-8?q?=20switch=20to=20ThreadingHTTPServer?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gateway/scripts/ocg_router.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gateway/scripts/ocg_router.py b/gateway/scripts/ocg_router.py index d0f401f..9d37a79 100644 --- a/gateway/scripts/ocg_router.py +++ b/gateway/scripts/ocg_router.py @@ -21,7 +21,7 @@ OpenAI 兼容代理,背后池化 6 个 OpenCode Go API key。 """ import os, sys, json, time, logging, threading -from http.server import HTTPServer, BaseHTTPRequestHandler +from http.server import ThreadingHTTPServer, BaseHTTPRequestHandler from urllib.request import Request, urlopen, HTTPError from urllib.error import URLError from datetime import datetime, timezone @@ -651,8 +651,8 @@ def main(): refresh_thread = threading.Thread(target=_bg_refresh, name="ocg_router_refresh", daemon=True) refresh_thread.start() - # 启动 HTTP 服务 - server = HTTPServer((LISTEN_HOST, LISTEN_PORT), RouterHandler) + # 启动 HTTP 服务(ThreadingHTTPServer — 多线程,避免大请求阻塞 /api/status 等监控端点) + server = ThreadingHTTPServer((LISTEN_HOST, LISTEN_PORT), RouterHandler) log.info("ocg_router 启动 → http://%s:%d", LISTEN_HOST, LISTEN_PORT) log.info("keys loaded: %d (%d healthy)", len(_keys), sum(1 for k in _keys if _key_health_score(k["key_id"]) < 888))