cs-element
Version:
Advanced reactive data management library with state machines, blueprints, persistence, compression, networking, and multithreading support
142 lines • 4.36 kB
TypeScript
/**
* Менеджер массовых операций с оптимизацией производительности
*/
import { EventEmitter } from 'eventemitter3';
import { IBatchManager, BatchOperation, BatchConfig, BatchResult, BatchProgress, BatchEventListener, BatchManagerStatistics } from '../types/batch-interfaces';
/**
* Реализация менеджера массовых операций
*/
export declare class BatchManager extends EventEmitter implements IBatchManager {
private batches;
private eventListeners;
private statistics;
private readonly defaultConfig;
/**
* Создать новый батч
*/
createBatch(config?: Partial<BatchConfig>): string;
/**
* Добавить операцию в батч
*/
addOperation(batchId: string, operation: BatchOperation): void;
/**
* Добавить несколько операций
*/
addOperations(batchId: string, operations: BatchOperation[]): void;
/**
* Выполнить батч
*/
executeBatch(batchId: string): Promise<BatchResult>;
/**
* Отменить выполнение батча
*/
cancelBatch(batchId: string): Promise<void>;
/**
* Получить прогресс выполнения
*/
getProgress(batchId: string): BatchProgress | null;
/**
* Получить результат батча
*/
getBatchResult(batchId: string): BatchResult | null;
/**
* Удалить батч
*/
removeBatch(batchId: string): boolean;
/**
* Получить все активные батчи
*/
getActiveBatches(): string[];
/**
* Добавить слушателя событий
*/
addEventListener(listener: BatchEventListener): void;
/**
* Удалить слушателя событий
*/
removeEventListener(listener: BatchEventListener): void;
/**
* Получить статистику
*/
getStatistics(): BatchManagerStatistics;
/**
* Валидация операций
*/
private validateOperations;
/**
* Сортировка операций по приоритету и зависимостям
*/
private sortOperations;
/**
* Выполнение операций
*/
private executeOperations;
/**
* Последовательное выполнение
*/
private executeSequential;
/**
* Параллельное выполнение
*/
private executeParallel;
/**
* Смешанное выполнение (группы по зависимостям)
*/
private executeMixed;
/**
* Выполнение одной операции
*/
private executeOperation;
/**
* Создание контекста выполнения
*/
private createExecutionContext;
/**
* Создание начального прогресса
*/
private createInitialProgress;
/**
* Обновление прогресса
*/
private updateProgress;
/**
* Обновление прогресса после завершения операции
*/
private updateOperationProgress;
/**
* Пользовательское обновление прогресса
*/
private updateCustomProgress;
/**
* Расчет статистики батча
*/
private calculateBatchStatistics;
/**
* Расчет использования памяти
*/
private calculateMemoryUsage;
/**
* Обновление среднего времени выполнения
*/
private updateAverageExecutionTime;
/**
* Создание результата отмененной операции
*/
private createCancelledResult;
/**
* Добавление таймаута к промису
*/
private withTimeout;
/**
* Задержка
*/
private delay;
private notifyBatchStart;
private notifyBatchComplete;
private notifyBatchError;
private notifyOperationStart;
private notifyOperationComplete;
private notifyOperationError;
private notifyProgressUpdate;
}
//# sourceMappingURL=BatchManager.d.ts.map