UNPKG

cs-element

Version:

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

120 lines 3.41 kB
/** * Планировщик миграций для автоматического запуска */ import { EventEmitter } from 'events'; import { MigrationRunnerConfig, MigrationExecutionInfo } from './MigrationRunner'; import { IMigrationManager } from '../types/migration-interfaces'; /** * Триггер для запуска миграций */ export type MigrationTrigger = 'startup' | 'scheduled' | 'manual' | 'version_change'; /** * Конфигурация планировщика */ export interface MigrationSchedulerConfig extends MigrationRunnerConfig { triggers?: MigrationTrigger[]; checkInterval?: number; initialDelay?: number; autoStart?: boolean; maxConcurrentExecutions?: number; notifications?: { onStart?: boolean; onComplete?: boolean; onError?: boolean; }; hooks?: { beforeExecution?: () => Promise<boolean>; afterExecution?: (result: MigrationExecutionInfo) => Promise<void>; onError?: (error: Error) => Promise<void>; }; } /** * Информация о задаче миграции */ export interface MigrationTask { id: string; trigger: MigrationTrigger; scheduledAt: Date; startedAt?: Date; completedAt?: Date; status: 'pending' | 'running' | 'completed' | 'failed' | 'cancelled'; result?: MigrationExecutionInfo; error?: string; } /** * Планировщик миграций */ export declare class MigrationScheduler extends EventEmitter { private migrationManager; private runner; private config; private tasks; private checkTimer?; private isStarted; private executionCount; constructor(migrationManager: IMigrationManager, config?: MigrationSchedulerConfig); /** * Настройка обработчиков событий */ private setupEventHandlers; /** * Запуск планировщика */ start(): Promise<void>; /** * Остановка планировщика */ stop(): Promise<void>; /** * Планирование задачи миграции */ scheduleTask(trigger: MigrationTrigger): string; /** * Выполнение задачи миграции */ private executeTask; /** * Проверка ожидающих миграций */ private checkPendingMigrations; /** * Ручной запуск миграций */ runNow(): Promise<string>; /** * Получение всех задач */ getTasks(): MigrationTask[]; /** * Получение задачи по ID */ getTask(taskId: string): MigrationTask | undefined; /** * Отмена задачи */ cancelTask(taskId: string): Promise<boolean>; /** * Очистка старых задач */ cleanupTasks(olderThan: Date): number; /** * Получение статистики */ getStats(): { totalTasks: number; pendingTasks: number; runningTasks: number; completedTasks: number; failedTasks: number; cancelledTasks: number; }; /** * Проверка, запущен ли планировщик */ isRunning(): boolean; /** * Логирование */ private log; } //# sourceMappingURL=MigrationScheduler.d.ts.map