mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-02 17:30:23 +08:00
refactor: 抽离 AI pipeline 与调度共享能力逻辑
This commit is contained in:
4
apps/aether-gateway/src/cache/mod.rs
vendored
4
apps/aether-gateway/src/cache/mod.rs
vendored
@@ -6,4 +6,6 @@ mod scheduler_affinity;
|
||||
pub(crate) use auth_api_key_last_used::AuthApiKeyLastUsedCache;
|
||||
pub(crate) use auth_context::AuthContextCache;
|
||||
pub(crate) use direct_plan_bypass::DirectPlanBypassCache;
|
||||
pub(crate) use scheduler_affinity::{SchedulerAffinityCache, SchedulerAffinityTarget};
|
||||
pub(crate) use scheduler_affinity::{
|
||||
SchedulerAffinityCache, SchedulerAffinitySnapshotEntry, SchedulerAffinityTarget,
|
||||
};
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
use std::time::Duration;
|
||||
|
||||
use aether_cache::ExpiringMap;
|
||||
use aether_cache::{ExpiringMap, ExpiringMapFreshEntry};
|
||||
pub(crate) use aether_scheduler_core::SchedulerAffinityTarget;
|
||||
|
||||
#[derive(Debug, Default)]
|
||||
@@ -8,6 +8,13 @@ pub(crate) struct SchedulerAffinityCache {
|
||||
entries: ExpiringMap<String, SchedulerAffinityTarget>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
pub(crate) struct SchedulerAffinitySnapshotEntry {
|
||||
pub(crate) cache_key: String,
|
||||
pub(crate) target: SchedulerAffinityTarget,
|
||||
pub(crate) age: Duration,
|
||||
}
|
||||
|
||||
impl SchedulerAffinityCache {
|
||||
pub(crate) fn get_fresh(
|
||||
&self,
|
||||
@@ -31,4 +38,18 @@ impl SchedulerAffinityCache {
|
||||
pub(crate) fn remove(&self, cache_key: &str) -> Option<SchedulerAffinityTarget> {
|
||||
self.entries.remove(&cache_key.to_string())
|
||||
}
|
||||
|
||||
pub(crate) fn fresh_entries(&self, ttl: Duration) -> Vec<SchedulerAffinitySnapshotEntry> {
|
||||
self.entries
|
||||
.snapshot_fresh(ttl)
|
||||
.into_iter()
|
||||
.map(
|
||||
|ExpiringMapFreshEntry { key, value, age }| SchedulerAffinitySnapshotEntry {
|
||||
cache_key: key,
|
||||
target: value,
|
||||
age,
|
||||
},
|
||||
)
|
||||
.collect()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user