perf(会员): 模型目录与账号权限档并发读取

- load_owner_llm_catalog 原串行等待目录与权限档两次 SpacetimeDB 往返,热路径延迟叠加
- 改为 tokio::join! 并发发起;目录错误仍由 catalog? 返回,权限档失败关闭语义不变
This commit is contained in:
2026-10-03 19:40:24 +08:00
parent 2e13334fd7
commit b46c0be9ce
+10 -3
View File
@@ -345,13 +345,20 @@ async fn load_llm_catalog(
}
/// 全局目录 + 账号权限档;所有对外 LLM 路由都经它解析模型。
///
/// 两者相互独立,热路径上用 `join!` 并发发往 SpacetimeDB,避免串行叠加两次往返延迟。
async fn load_owner_llm_catalog(
state: &AppState,
owner: &str,
) -> Result<OwnerAgcModelCatalog, AppError> {
let catalog = load_llm_catalog(state, owner).await?;
let access = resolve_owner_agc_model_access(state, owner).await;
Ok(OwnerAgcModelCatalog { catalog, access })
let (catalog, access) = tokio::join!(
load_llm_catalog(state, owner),
resolve_owner_agc_model_access(state, owner),
);
Ok(OwnerAgcModelCatalog {
catalog: catalog?,
access,
})
}
/// 模型解析错误的统一映射:档位不够是 403 + 专用错误码,目录外 / 停用仍是 422。