refactor: extract runtime state backends

This commit is contained in:
fawney19
2026-05-08 00:18:12 +08:00
parent 6f620d92be
commit 6247ac3edc
111 changed files with 4358 additions and 3203 deletions
@@ -139,11 +139,8 @@ pub(super) async fn build_admin_pool_list_keys_response(
let page_offset = page.saturating_sub(1).saturating_mul(page_size);
let (keys, total) = if status == "cooldown" {
let cooldown_key_ids = if let Some(runner) = state.redis_kv_runner() {
read_admin_provider_pool_cooldown_key_ids(&runner, &provider.id).await
} else {
Vec::new()
};
let cooldown_key_ids =
read_admin_provider_pool_cooldown_key_ids(state.runtime_state(), &provider.id).await;
let mut keys = if cooldown_key_ids.is_empty() {
Vec::new()
} else {
@@ -240,10 +237,10 @@ pub(super) async fn build_admin_pool_list_keys_response(
let endpoints = state
.list_provider_catalog_endpoints_by_provider_ids(std::slice::from_ref(&provider.id))
.await?;
let runtime = match (state.redis_kv_runner(), pool_config.as_ref()) {
(Some(runner), Some(pool_config)) if !key_ids.is_empty() => {
let runtime = match pool_config.as_ref() {
Some(pool_config) if !key_ids.is_empty() => {
read_admin_provider_pool_runtime_state(
&runner,
state.runtime_state(),
&provider.id,
&key_ids,
pool_config,
@@ -1,3 +1,5 @@
use std::collections::BTreeMap;
use super::{
admin_provider_pool_config, build_admin_pool_error_response,
read_admin_provider_pool_cooldown_counts,
@@ -12,7 +14,6 @@ use axum::{
response::{IntoResponse, Response},
Json,
};
use std::collections::BTreeMap;
pub(super) async fn build_admin_pool_overview_response(
state: &AdminAppState<'_>,
@@ -35,7 +36,6 @@ pub(super) async fn build_admin_pool_overview_response(
.iter()
.map(|(provider, _)| provider.id.clone())
.collect::<Vec<_>>();
let redis_runner = state.redis_kv_runner();
let (key_stats_result, cooldown_counts_by_provider) = tokio::join!(
async {
if provider_ids.is_empty() {
@@ -47,11 +47,10 @@ pub(super) async fn build_admin_pool_overview_response(
}
},
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(),
if provider_ids.is_empty() {
std::collections::BTreeMap::new()
} else {
read_admin_provider_pool_cooldown_counts(state.runtime_state(), &provider_ids).await
}
},
);