UNPKG

@aidalinfo/pdf-processor

Version:

Powerful PDF data extraction library powered by AI vision models. Transform PDFs into structured, validated data using TypeScript, Zod, and AI providers like Scaleway and Ollama.

91 lines (90 loc) 2.09 kB
/** * Worker Pool Manager pour Bun * Gère les workers PDF et Vision avec load balancing et error recovery */ export interface WorkerTask { taskId: string; data: any; resolve: (result: any) => void; reject: (error: Error) => void; timeout?: number; } export interface WorkerPoolConfig { maxWorkers: number; workerScript: string; taskTimeout: number; } /** * Pool de workers Bun avec gestion automatique des tâches */ export declare class WorkerPool { private workers; private availableWorkers; private pendingTasks; private activeTasks; private config; constructor(config: WorkerPoolConfig); /** * Initialise le pool de workers */ private initializeWorkers; /** * Execute une tâche dans le pool de workers */ executeTask<T>(data: any, timeout?: number): Promise<T>; /** * Traite les tâches en attente */ private processPendingTasks; /** * Gère la réponse d'un worker */ private handleWorkerMessage; /** * Gère les erreurs de worker */ private handleWorkerError; /** * Gère le timeout d'une tâche */ private handleTaskTimeout; /** * Crée un worker de remplacement */ private createReplacementWorker; /** * Statistiques du pool */ getStats(): { totalWorkers: number; availableWorkers: number; activeTasks: number; pendingTasks: number; utilization: number; }; /** * Ferme le pool et termine tous les workers */ shutdown(): Promise<void>; } /** * Manager global des pools de workers */ export declare class WorkerPoolManager { private pools; /** * Crée ou récupère un pool de workers */ getPool(name: string, config?: WorkerPoolConfig): WorkerPool; /** * Statistiques globales */ getGlobalStats(): { [k: string]: any; }; /** * Arrêt de tous les pools */ shutdownAll(): Promise<void>; } export declare const workerPoolManager: WorkerPoolManager;