@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
TypeScript
/**
* 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;