fix(agent): map closed database worker to 503

This commit is contained in:
InfinityPacer
2026-08-23 11:44:18 +08:00
parent e0f70fa920
commit cc8e4bc510
3 changed files with 39 additions and 6 deletions
+10 -3
View File
@@ -14,7 +14,10 @@ from app.adapters.observability.otel import build_observation_port
from app.adapters.web.plugin.routes import FastAPIDynamicRouteRegistry
from app.adapters.web.health import install_health_routes
from app.application.plugin.routes import configure_plugin_routes
from app.application.database import DatabaseWorkerOverloadedError
from app.application.database import (
DatabaseWorkerClosedError,
DatabaseWorkerOverloadedError,
)
from app.adapters.web.security.access import (
configure_token_codec,
verify_apikey,
@@ -234,9 +237,9 @@ async def localized_http_exception_handler(
async def database_worker_overloaded_handler(
request: Request,
_exc: DatabaseWorkerOverloadedError,
_exc: DatabaseWorkerClosedError | DatabaseWorkerOverloadedError,
) -> JSONResponse:
"""将数据库短事务背压映射为可重试的 503 响应。"""
"""将数据库 worker 暂不可用映射为可重试的 503 响应。"""
return await localized_http_exception_handler(
request,
HTTPException(
@@ -335,6 +338,10 @@ def create_app() -> FastAPI:
DatabaseWorkerOverloadedError,
database_worker_overloaded_handler,
)
_app.add_exception_handler(
DatabaseWorkerClosedError,
database_worker_overloaded_handler,
)
_app.add_exception_handler(
RequestValidationError,
localized_validation_exception_handler,