Files
Aether/apps/aether-gateway/src/cache/dashboard_response.rs
T
fawney19 67a2ca6e31 perf(gateway): 为 dashboard 接口添加短时响应缓存
新增 DashboardResponseCache,对 stats/daily_stats/provider_status
三个接口按用户维度缓存 15-30 秒,减少重复数据库查询。
2026-04-15 03:03:20 +08:00

29 lines
653 B
Rust

use std::time::Duration;
use aether_cache::ExpiringMap;
const MAX_ENTRIES: usize = 256;
#[derive(Debug)]
pub(crate) struct DashboardResponseCache {
entries: ExpiringMap<String, Vec<u8>>,
}
impl Default for DashboardResponseCache {
fn default() -> Self {
Self {
entries: ExpiringMap::new(),
}
}
}
impl DashboardResponseCache {
pub(crate) fn get(&self, key: &str, ttl: Duration) -> Option<Vec<u8>> {
self.entries.get_fresh(&key.to_string(), ttl)
}
pub(crate) fn insert(&self, key: String, value: Vec<u8>, ttl: Duration) {
self.entries.insert(key, value, ttl, MAX_ENTRIES);
}
}