diff --git a/apps/desktop/src-tauri/src/business/services/cache_manager.rs b/apps/desktop/src-tauri/src/business/services/cache_manager.rs index ec54bdf..4abbef2 100644 --- a/apps/desktop/src-tauri/src/business/services/cache_manager.rs +++ b/apps/desktop/src-tauri/src/business/services/cache_manager.rs @@ -369,84 +369,7 @@ where - /// 设置缓存项 - pub async fn set(&self, key: K, value: V, ttl: Option, priority: Option) -> Result<()> { - let now = Instant::now(); - let expires_at = ttl.or(Some(self.config.default_ttl)).map(|t| now + t); - let priority = priority.unwrap_or(CachePriority::Normal); - - // 估算数据大小(简化实现) - let size = std::mem::size_of::(); - let item = CacheItem { - data: value, - created_at: now, - last_accessed: now, - access_count: 0, - expires_at, - size, - priority, - }; - - // 检查是否需要驱逐 - self.ensure_capacity(size).await?; - - // 插入缓存 - { - let mut cache = self.cache.write().await; - cache.insert(key.clone(), item); - } - - // 更新访问跟踪 - self.update_access_tracking(&key, 0).await; - - // 更新统计 - self.update_cache_stats().await; - - Ok(()) - } - - /// 移除缓存项 - pub async fn remove(&self, key: &K) -> Option { - let result = { - let mut cache = self.cache.write().await; - cache.remove(key).map(|item| item.data) - }; - - if result.is_some() { - // 清理访问跟踪 - self.cleanup_access_tracking(key).await; - // 更新统计 - self.update_cache_stats().await; - } - - result - } - - /// 清空缓存 - pub async fn clear(&self) -> Result<()> { - { - let mut cache = self.cache.write().await; - cache.clear(); - } - { - let mut access_order = self.access_order.write().await; - access_order.clear(); - } - { - let mut access_frequency = self.access_frequency.write().await; - access_frequency.clear(); - } - - self.update_cache_stats().await; - info!("缓存已清空"); - Ok(()) - } - - /// 获取缓存统计 - pub async fn get_stats(&self) -> CacheStats { - self.stats.read().await.clone() - } /// 检查缓存容量并驱逐项目 async fn ensure_capacity(&self, new_item_size: usize) -> Result<()> { diff --git a/apps/desktop/src-tauri/src/business/services/comfyui_v2_service_manager.rs b/apps/desktop/src-tauri/src/business/services/comfyui_v2_service_manager.rs index c84afbe..07b8b8a 100644 --- a/apps/desktop/src-tauri/src/business/services/comfyui_v2_service_manager.rs +++ b/apps/desktop/src-tauri/src/business/services/comfyui_v2_service_manager.rs @@ -10,8 +10,9 @@ use crate::business::services::{ comfyui_v2_service::ComfyUIV2Service, realtime_monitor_v2::RealtimeMonitorV2, queue_manager::QueueManager, - cache_manager::CacheManager, + cache_manager::{CacheManager, CacheConfig}, template_engine::TemplateEngine, + comfyui_manager::ComfyUIManager, }; use crate::data::repositories::comfyui_repository::ComfyUIRepository; @@ -40,7 +41,7 @@ impl ComfyUIV2ServiceManager { /// 创建新的服务管理器 pub fn new(repository: Arc) -> Self { // 创建缓存管理器 - let cache_manager = Arc::new(CacheManager::new(None)); + let cache_manager = Arc::new(CacheManager::new(CacheConfig::default())); // 创建模板引擎 let template_engine = Arc::new(TemplateEngine::new(repository.clone())); diff --git a/apps/desktop/src-tauri/src/business/services/mod.rs b/apps/desktop/src-tauri/src/business/services/mod.rs index 1f49d93..372a58d 100644 --- a/apps/desktop/src-tauri/src/business/services/mod.rs +++ b/apps/desktop/src-tauri/src/business/services/mod.rs @@ -55,11 +55,8 @@ pub mod realtime_monitor_v2; pub mod queue_manager; pub mod cache_manager; pub mod comfyui_v2_service_manager; -pub mod realtime_monitor_v2; pub mod websocket_handler; pub mod tauri_event_emitter; -pub mod queue_manager; -pub mod cache_manager; pub mod performance_monitor_v2; pub mod outfit_photo_generation_service; pub mod workflow_management_service; diff --git a/apps/desktop/src-tauri/src/business/services/realtime_monitor_v2.rs b/apps/desktop/src-tauri/src/business/services/realtime_monitor_v2.rs index 32fb773..434ec70 100644 --- a/apps/desktop/src-tauri/src/business/services/realtime_monitor_v2.rs +++ b/apps/desktop/src-tauri/src/business/services/realtime_monitor_v2.rs @@ -188,6 +188,7 @@ impl Default for EventStatistics { impl RealtimeMonitorV2 { /// 创建新的实时监控服务 pub fn new( + manager: Arc, repository: Arc, config: Option, ) -> Self { @@ -195,6 +196,7 @@ impl RealtimeMonitorV2 { let (event_sender, _) = broadcast::channel(config.event_buffer_size); Self { + manager, repository, websocket_client: Arc::new(Mutex::new(None)), config, @@ -495,10 +497,7 @@ impl RealtimeMonitorV2 { } } -/// 事件订阅者特征 -pub trait EventSubscriber: Send + Sync { - fn handle_event(&self, event: &RealtimeEventV2); -} + /// 监控统计信息 #[derive(Debug, Clone, Serialize, Deserialize)]