@ui18n/angular
Version:
🅰️ Modern Angular internationalization with standalone components, signals, and dependency injection support for Angular 15+
166 lines • 3.54 kB
TypeScript
import { TranslationRequest, TranslationResult } from './types';
import { AITranslator } from './ai-translator';
/**
* 翻译任务优先级
*/
export declare enum TaskPriority {
LOW = 0,
NORMAL = 1,
HIGH = 2,
URGENT = 3
}
/**
* 翻译任务接口
*/
export interface TranslationTask {
id: string;
request: TranslationRequest;
priority: TaskPriority;
timestamp: number;
resolve: (result: TranslationResult) => void;
reject: (error: Error) => void;
timeout?: number;
retries: number;
maxRetries: number;
}
/**
* 队列统计信息
*/
export interface QueueStats {
pending: number;
processing: number;
completed: number;
failed: number;
totalTasks: number;
averageWaitTime: number;
averageProcessingTime: number;
throughputPerSecond: number;
memoryUsage: number;
activeWorkers: number;
maxConcurrency: number;
}
/**
* 队列配置
*/
export interface QueueConfig {
maxConcurrency: number;
maxQueueSize: number;
defaultTimeout: number;
enableBatching: boolean;
batchSize: number;
batchTimeout: number;
retryAttempts: number;
maxRetries?: number;
backoffMultiplier: number;
enableDeduplication: boolean;
enablePrioritization: boolean;
}
/**
* 高效并发翻译队列管理器
*/
export declare class ConcurrentTranslationQueue {
private config;
private aiTranslator;
private taskQueue;
private processingTasks;
private completedTasks;
private failedTasks;
private activeWorkers;
private workerPromises;
private pendingRequests;
private batchBuffer;
private batchTimer?;
private stats;
private processingTimes;
private waitTimes;
private memoryCheckInterval?;
private throughputInterval?;
private lastThroughputCheck;
private completedInLastSecond;
constructor(aiTranslator: AITranslator, config?: Partial<QueueConfig>);
/**
* 添加翻译任务到队列
*/
addTask(request: TranslationRequest, priority?: TaskPriority, timeout?: number): Promise<TranslationResult>;
/**
* 添加到批处理缓冲区
*/
private addToBatch;
/**
* 处理批次
*/
private processBatch;
/**
* 添加到队列
*/
private addToQueue;
/**
* 按优先级插入任务
*/
private insertByPriority;
/**
* 处理队列
*/
private processQueue;
/**
* 处理单个任务
*/
private processTask;
/**
* 处理任务成功
*/
private handleTaskSuccess;
/**
* 处理任务失败
*/
private handleTaskFailure;
/**
* 生成任务ID
*/
private generateTaskId;
/**
* 获取去重键
*/
private getDeduplicationKey;
/**
* 更新统计信息
*/
private updateStats;
/**
* 估算内存使用量
*/
private estimateMemoryUsage;
/**
* 启动监控
*/
private startMonitoring;
/**
* 检查内存使用
*/
private checkMemoryUsage;
/**
* 更新吞吐量
*/
private updateThroughput;
/**
* 获取队列统计信息
*/
getStats(): QueueStats;
/**
* 暂停队列处理
*/
pause(): void;
/**
* 恢复队列处理
*/
resume(maxConcurrency?: number): void;
/**
* 清空队列
*/
clear(): void;
/**
* 销毁队列
*/
destroy(): void;
}
//# sourceMappingURL=concurrent-translation-queue.d.ts.map