Files
leaudit-platform-frontend/app/api/queue.ts
T
2026-01-29 16:54:45 +08:00

60 lines
1.5 KiB
TypeScript

// app/api/queue.ts
// 队列状态 API 客户端
import axios from 'axios';
import { API_BASE_URL } from '../config/api-config';
/**
* 队列状态响应接口
*/
export interface QueueStatus {
success: boolean;
timestamp: string;
queue: {
pending_tasks: number;
processing_tasks: number;
available_slots: number;
max_concurrent: number;
};
documents: {
waiting: number; // 排队中的文档数
processing: number; // 处理中的文档数
processing_ids: string[];
};
}
/**
* 获取队列整体状态
* @returns 队列状态信息
*/
export async function getQueueStatus(): Promise<{ data?: QueueStatus; error?: string }> {
try {
// 从 localStorage 获取 token
let token: string | null = null;
if (typeof window !== 'undefined') {
token = localStorage.getItem('access_token');
}
const headers: Record<string, string> = {
'Accept': 'application/json'
};
if (token) {
headers['Authorization'] = `Bearer ${token}`;
}
const response = await axios.get<QueueStatus>(
`${API_BASE_URL}/api/v2/system/queue/status`,
{ headers }
);
return { data: response.data };
} catch (error) {
console.error('【队列状态】获取队列状态失败:', error);
if (axios.isAxiosError(error)) {
return { error: error.response?.data?.detail || error.message };
}
return { error: error instanceof Error ? error.message : '获取队列状态失败' };
}
}