UNPKG

cs-element

Version:

Advanced reactive data management library with state machines, blueprints, persistence, compression, networking, and multithreading support

142 lines 4.36 kB
/** * Менеджер массовых операций с оптимизацией производительности */ 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