mirror of
https://github.com/fawney19/Aether.git
synced 2026-10-10 03:09:50 +08:00
perf: 并行化 admin 聚合路由并完善前端缓存预取
- gateway: usage detail / provider summary / pool overview / users list 改为 tokio join 并行拉取依赖数据 - usage: interval timeline 支持自动刷新并按查询区间动态展示,取消服务端 120 分钟过滤并在 ScatterChart 统一封顶 - frontend: 新增管理端导航预取工具及 SidebarNav/MainLayout 触发,admin 读接口统一走 cachedRequest 的短期缓存 - dashboard: request detail 支持短 TTL 缓存并在 UsageRecordsTable mousedown 时预取 - data: migrate 测试在 wait_for_postgres 失败时清理子进程,避免遗留
This commit is contained in:
+21
-14
@@ -35,24 +35,31 @@ pub(super) async fn build_admin_pool_overview_response(
|
||||
.iter()
|
||||
.map(|(provider, _)| provider.id.clone())
|
||||
.collect::<Vec<_>>();
|
||||
let key_stats = if provider_ids.is_empty() {
|
||||
Vec::new()
|
||||
} else {
|
||||
state
|
||||
.list_provider_catalog_key_stats_by_provider_ids(&provider_ids)
|
||||
.await?
|
||||
};
|
||||
let redis_runner = state.redis_kv_runner();
|
||||
let (key_stats_result, cooldown_counts_by_provider) = tokio::join!(
|
||||
async {
|
||||
if provider_ids.is_empty() {
|
||||
Ok(Vec::new())
|
||||
} else {
|
||||
state
|
||||
.list_provider_catalog_key_stats_by_provider_ids(&provider_ids)
|
||||
.await
|
||||
}
|
||||
},
|
||||
async {
|
||||
match redis_runner.as_ref() {
|
||||
Some(runner) if !provider_ids.is_empty() => {
|
||||
read_admin_provider_pool_cooldown_counts(runner, &provider_ids).await
|
||||
}
|
||||
_ => BTreeMap::new(),
|
||||
}
|
||||
},
|
||||
);
|
||||
let key_stats = key_stats_result?;
|
||||
let key_stats_by_provider = key_stats
|
||||
.into_iter()
|
||||
.map(|item| (item.provider_id.clone(), item))
|
||||
.collect::<BTreeMap<_, _>>();
|
||||
let redis_runner = state.redis_kv_runner();
|
||||
let cooldown_counts_by_provider = match redis_runner.as_ref() {
|
||||
Some(runner) if !provider_ids.is_empty() => {
|
||||
read_admin_provider_pool_cooldown_counts(runner, &provider_ids).await
|
||||
}
|
||||
_ => BTreeMap::new(),
|
||||
};
|
||||
|
||||
let providers = pool_enabled_providers
|
||||
.into_iter()
|
||||
|
||||
Reference in New Issue
Block a user