fix: 修复AI视频分类进度数据不一致问题
问题修复: - 修复分类统计与队列进度数据不匹配的问题 - 添加项目特定的队列状态查询接口 - 确保AI视频分类进度显示当前项目的准确数据 技术改进: - 添加get_project_classification_queue_status命令 - 在VideoClassificationQueue中添加get_project_stats方法 - 前端组件现在使用项目特定的队列状态 数据一致性: - 队列统计现在基于项目过滤 - 分类统计和任务进度数据保持一致 - 避免了跨项目数据混淆的问题
This commit is contained in:
parent
b1fdcaac6b
commit
943a22a85e
|
|
@ -173,6 +173,26 @@ impl VideoClassificationQueue {
|
|||
self.stats.read().await.clone()
|
||||
}
|
||||
|
||||
/// 获取项目的队列统计信息
|
||||
pub async fn get_project_stats(&self, project_id: &str) -> Result<QueueStats> {
|
||||
let status = self.status.read().await.clone();
|
||||
let current_task = self.current_task.lock().await.clone();
|
||||
|
||||
// 获取项目特定的分类统计
|
||||
let classification_stats = self.service.get_classification_stats(Some(project_id)).await?;
|
||||
|
||||
Ok(QueueStats {
|
||||
status,
|
||||
total_tasks: classification_stats.total_tasks as usize,
|
||||
pending_tasks: classification_stats.pending_tasks as usize,
|
||||
processing_tasks: classification_stats.processing_tasks as usize,
|
||||
completed_tasks: classification_stats.completed_tasks as usize,
|
||||
failed_tasks: classification_stats.failed_tasks as usize,
|
||||
current_task_id: current_task,
|
||||
processing_rate: self.stats.read().await.processing_rate, // 保持全局处理速率
|
||||
})
|
||||
}
|
||||
|
||||
/// 获取任务进度
|
||||
pub async fn get_task_progress(&self, task_id: &str) -> Option<TaskProgress> {
|
||||
self.task_progress.read().await.get(task_id).cloned()
|
||||
|
|
|
|||
|
|
@ -107,6 +107,7 @@ pub fn run() {
|
|||
// AI视频分类命令
|
||||
commands::video_classification_commands::start_video_classification,
|
||||
commands::video_classification_commands::get_classification_queue_status,
|
||||
commands::video_classification_commands::get_project_classification_queue_status,
|
||||
commands::video_classification_commands::get_classification_task_progress,
|
||||
commands::video_classification_commands::get_all_classification_task_progress,
|
||||
commands::video_classification_commands::get_project_classification_task_progress,
|
||||
|
|
|
|||
|
|
@ -70,6 +70,16 @@ pub async fn get_classification_queue_status(
|
|||
Ok(queue.get_stats().await)
|
||||
}
|
||||
|
||||
/// 获取项目的分类队列状态
|
||||
#[command]
|
||||
pub async fn get_project_classification_queue_status(
|
||||
project_id: String,
|
||||
state: State<'_, AppState>,
|
||||
) -> Result<QueueStats, String> {
|
||||
let queue = get_queue_instance(&state).await;
|
||||
queue.get_project_stats(&project_id).await.map_err(|e| e.to_string())
|
||||
}
|
||||
|
||||
/// 获取任务进度
|
||||
#[command]
|
||||
pub async fn get_classification_task_progress(
|
||||
|
|
|
|||
Loading…
Reference in New Issue