feat(mcp): queue long-running calculations

This commit is contained in:
2026-10-29 18:25:15 +08:00
parent 2865811f1b
commit 63af998045
32 changed files with 1588 additions and 72 deletions
+12 -1
View File
@@ -145,5 +145,16 @@ TJWATER_MCP_ALLOWED_ORIGINS='[]'
TJWATER_MCP_CONTEXT_TTL_SECONDS=600
# 普通查询预算;计算工具由 Agent 通过 timeout_seconds 按次指定。
TJWATER_MCP_QUERY_TIMEOUT_SECONDS=30
# 计算等待上限为 120–86400 秒,实际上限通过 tools/list 发布。
# 后台计算执行上限为 120–86400 秒,实际上限通过 tools/list 发布;不延长 HTTP 超时。
TJWATER_MCP_MAX_CALCULATION_TIMEOUT_SECONDS=3600
# 独立计算队列消费者;显式项目 UUID,以逗号分隔。不会在 API lifespan 内启动。
# 先在每个目标项目 BizDB 应用 026_calculation_jobs.sql,再启动计算服务。
CALCULATION_WORKER_PROJECT_IDS=""
# 所有配置项目合计并发,独立于 Uvicorn --workers 4;单实例锁防止重复消费者扩容。
CALCULATION_WORKER_MAX_CONCURRENCY=2
CALCULATION_WORKER_POLL_SECONDS=2
CALCULATION_WORKER_LEASE_SECONDS=30
CALCULATION_WORKER_HEARTBEAT_SECONDS=5
# 持久化本机恢复账本;容器模板已挂载独立 volume,不能当缓存删除。
CALCULATION_WORKER_STATE_DIR="temp/calculation-jobs"