qnce-engine
Version:
Core QNCE (Quantum Narrative Convergence Engine) - Framework agnostic narrative engine with performance optimization
107 lines • 3.06 kB
TypeScript
export interface QnceJob {
id: string;
type: 'cache-load' | 'telemetry-write' | 'hot-reload-prep' | 'asset-process';
priority: 'low' | 'normal' | 'high';
payload: unknown;
timestamp: number;
resolve: (result: unknown) => void;
reject: (error: Error) => void;
}
export interface ThreadPoolConfig {
maxWorkers: number;
queueLimit: number;
idleTimeout: number;
enableProfiling: boolean;
}
export interface ThreadPoolStats {
activeWorkers: number;
queuedJobs: number;
completedJobs: number;
failedJobs: number;
avgExecutionTime: number;
workerUtilization: number;
}
/**
* QnceThreadPool - Background job processing for QNCE engine
* Handles cache operations, telemetry, and other non-blocking tasks
*/
export declare class QnceThreadPool {
private workers;
private jobQueue;
private activeJobs;
private config;
private stats;
private isShuttingDown;
constructor(config?: Partial<ThreadPoolConfig>);
/**
* Submit job for background processing
*/
submitJob<T = unknown>(type: QnceJob['type'], payload: unknown, priority?: QnceJob['priority']): Promise<T>;
/**
* Cache load operation (S2-T2 primary use case)
*/
loadFromCache(cacheKey: string, loader: () => Promise<unknown>): Promise<unknown>;
/**
* Telemetry write operation (S2-T2 primary use case)
*/
writeTelemetry(eventData: unknown): Promise<void>;
/**
* Hot-reload preparation (integration with S2-T3)
*/
prepareHotReload(deltaData: unknown): Promise<unknown>;
/**
* Get current thread pool statistics
*/
getStats(): ThreadPoolStats;
/**
* Graceful shutdown of thread pool
*/
shutdown(timeoutMs?: number): Promise<void>;
/**
* Initialize worker threads based on environment
*/
private initializeWorkers;
/**
* Web Workers for browser environment
*/
private initializeWebWorkers;
/**
* Node.js worker_threads (placeholder - would need actual implementation)
*/
private initializeNodeWorkers;
/**
* Fallback simulation for testing/development
*/
private initializeFallbackWorkers;
/**
* Generate Web Worker code for browser execution
*/
private generateWebWorkerCode;
/**
* Setup worker message handlers
*/
private setupWorkerHandlers;
/**
* Handle worker completion messages
*/
private handleWorkerMessage;
/**
* Handle worker errors
*/
private handleWorkerError;
/**
* Process job queue by assigning jobs to available workers
*/
private processQueue;
/**
* Find insertion index for job based on priority
*/
private findInsertionIndex;
/**
* Update execution time statistics
*/
private updateExecutionTimeStats;
}
export declare function getThreadPool(config?: Partial<ThreadPoolConfig>): QnceThreadPool;
export declare function shutdownThreadPool(): Promise<void>;
//# sourceMappingURL=ThreadPool.d.ts.map