refactor(runtime): 优化管理端摘要查询与维护聚合链路

- 为 provider catalog key 和 video task 列表增加 summary/page 查询与排序能力,减少列表场景读取重字段
- 将多处 SQL 结果读取改为流式收集,降低 `fetch_all` 的内存占用
- 把日/小时统计、钱包日用量等维护任务改为数据库侧 `CTE + upsert` 聚合
- 修复视频任务轮询更新时从本地 snapshot 回填稀疏字段,避免 `prompt` 和请求体信息丢失
This commit is contained in:
AAEE86
2026-04-13 15:44:58 +08:00
committed by fawney19
parent 6aa16ec792
commit b2d85d70ca
55 changed files with 1954 additions and 1382 deletions
+8 -5
View File
@@ -14,6 +14,7 @@ use aether_data::repository::auth::{
read_resolved_auth_api_key_snapshot_by_key_hash,
read_resolved_auth_api_key_snapshot_by_user_api_key_ids,
};
use futures_util::TryStreamExt;
use sqlx::Row;
use uuid::Uuid;
@@ -1278,12 +1279,14 @@ impl GatewayDataState {
let Some(pool) = self.postgres_pool() else {
return Ok(Vec::new());
};
let rows = sqlx::query(LIST_USER_SESSIONS_SQL)
let mut rows = sqlx::query(LIST_USER_SESSIONS_SQL)
.bind(user_id)
.fetch_all(&pool)
.await
.map_postgres_err()?;
rows.iter().map(map_user_session_row).collect()
.fetch(&pool);
let mut sessions = Vec::new();
while let Some(row) = rows.try_next().await.map_postgres_err()? {
sessions.push(map_user_session_row(&row)?);
}
Ok(sessions)
}
pub(crate) async fn create_user_session(