refactor(api): TOML 配置 SSOT、统一错误契约、Auth/事务加固与可观测性 (#33)
配置 SSOT(TOML + .env) 统一错误契约 Auth 与事务边界 Redis / Celery 可靠性:业务 Redis(DB/0)与 Celery broker/backend(DB/1)显式拆分;连接池、sync client 可观测性(OpenTelemetry + LGTM)
This commit is contained in:
@@ -30,6 +30,7 @@ from app.features.payment import models as _payment_models # noqa: F401
|
||||
from app.features.story import models as _story_models # noqa: F401
|
||||
from app.features.user import models as _user_models # noqa: F401
|
||||
from app.features.user.models import User
|
||||
from app.features.memoir.constants import memoir
|
||||
from app.tasks.memoir_tasks import (
|
||||
_persist_phase2_route_defer,
|
||||
_wake_deferred_segments_for_category,
|
||||
@@ -185,7 +186,7 @@ def test_pipeline_does_not_defer_when_disabled(
|
||||
monkeypatch: pytest.MonkeyPatch,
|
||||
) -> None:
|
||||
"""关闭开关后,旧行为:直接写 new_story(不再延迟)。"""
|
||||
monkeypatch.setattr(settings, "memoir_route_defer_enabled", False)
|
||||
monkeypatch.setattr(memoir, "route_defer_enabled", False)
|
||||
|
||||
seg = SimpleNamespace(id="seg-no-defer", user_input_text="一句简短的口述")
|
||||
decide_return = StoryRouteDecision(
|
||||
@@ -298,8 +299,8 @@ def test_persist_phase2_route_defer_marks_segment_and_schedules_next(
|
||||
monkeypatch: pytest.MonkeyPatch,
|
||||
) -> None:
|
||||
"""首次延迟:写入 defer 元数据并安排下一次 timeout(未达上限)。"""
|
||||
monkeypatch.setattr(settings, "memoir_route_defer_seconds", 30.0)
|
||||
monkeypatch.setattr(settings, "memoir_route_defer_max_attempts", 3)
|
||||
monkeypatch.setattr(memoir, "route_defer_seconds", 30.0)
|
||||
monkeypatch.setattr(memoir, "route_defer_max_attempts", 3)
|
||||
|
||||
db = sqlite_session_factory()
|
||||
seg = _seed_user_segment(
|
||||
@@ -345,8 +346,8 @@ def test_persist_phase2_route_defer_stops_scheduling_at_max_attempts(
|
||||
monkeypatch: pytest.MonkeyPatch,
|
||||
) -> None:
|
||||
"""达到 max_attempts 后不再继续派发 timeout,segment 仍保留 defer 元数据。"""
|
||||
monkeypatch.setattr(settings, "memoir_route_defer_seconds", 30.0)
|
||||
monkeypatch.setattr(settings, "memoir_route_defer_max_attempts", 2)
|
||||
monkeypatch.setattr(memoir, "route_defer_seconds", 30.0)
|
||||
monkeypatch.setattr(memoir, "route_defer_max_attempts", 2)
|
||||
|
||||
db = sqlite_session_factory()
|
||||
seg = _seed_user_segment(
|
||||
|
||||
Reference in New Issue
Block a user