/** * Worker Pool - Speculative Execution v2.0 * * Manages Node.js Worker Threads for parallel pre-computation of predicted requests. * Each worker executes a prediction in the background without blocking the main thread. * * Features: * - Dynamic worker allocation * - Resource management * - Task queuing * - Graceful shutdown */ import { EventEmitter } from 'events'; import { Prediction } from './PredictionEngine'; export interface WorkerTask { id: string; prediction: Prediction; agentId?: string; priority: number; createdAt: number; } export interface WorkerResult { taskId: string; prediction: Prediction; result: any; executionTime: number; success: boolean; error?: string; } export interface WorkerPoolConfig { maxWorkers?: number; workerScript?: string; taskTimeout?: number; maxQueueSize?: number; } export interface WorkerPoolMetrics { activeWorkers: number; idleWorkers: number; queuedTasks: number; completedTasks: number; failedTasks: number; averageExecutionTime: number; cpuUsage: number; } export declare class WorkerPool extends EventEmitter { private config; private workers; private taskQueue; private nextWorkerId; private metrics; constructor(config?: WorkerPoolConfig); /** * Initialize the worker pool */ initialize(): Promise; /** * Submit a task for execution */ submitTask(task: WorkerTask): Promise; /** * Submit multiple tasks from predictions */ submitPredictions(predictions: Prediction[]): Promise; /** * Create a new worker */ private createWorker; /** * Assign tasks to available workers */ private assignTasks; /** * Assign a task to a specific worker */ private assignTaskToWorker; /** * Handle message from worker */ private handleWorkerMessage; /** * Handle worker error */ private handleWorkerError; /** * Handle worker exit */ private handleWorkerExit; /** * Handle task timeout */ private handleTaskTimeout; /** * Terminate a worker */ private terminateWorker; /** * Update metrics */ private updateMetrics; /** * Get current metrics */ getMetrics(): WorkerPoolMetrics; /** * Shutdown the worker pool */ shutdown(): Promise; } //# sourceMappingURL=WorkerPool.d.ts.map