UNPKG

website-scrap-engine

Version:
40 lines 1.66 kB
import type { MessagePort, WorkerOptions } from 'node:worker_threads'; import { Worker } from 'node:worker_threads'; import type { URL } from 'node:url'; import type { LogWorkerMessage } from './worker-type.js'; import type { PendingPromise, PendingPromiseWithBody, WorkerMessage } from './types.js'; export interface WorkerInfo { readonly id: number; load: number; worker: Worker; } export declare class WorkerInfoImpl implements WorkerInfo { worker: Worker; readonly id: number; load: number; constructor(worker: Worker); } export interface WorkerFactory { (filename: string | URL, options?: WorkerOptions): Worker; } export declare class WorkerPool<T = unknown, R extends WorkerMessage = WorkerMessage> { coreSize: number; workerScript: string; workerData: Record<string, unknown>; maxLoad: number; factory: WorkerFactory; readonly workers: WorkerInfo[]; readonly pendingTasks: PendingPromiseWithBody<R>[]; readonly workingTasks: Record<number, PendingPromise>; readonly ready: Promise<void>; taskIdCounter: number; constructor(coreSize: number, workerScript: string, workerData: Record<string, unknown>, maxLoad?: number, factory?: WorkerFactory); workerOnError(info: WorkerInfo, err: Error): void; onMessage(info: WorkerInfo, message: WorkerMessage): void; takeLog(info: WorkerInfo, message: LogWorkerMessage): void; complete(info: WorkerInfo, message: WorkerMessage): void; submitTask(taskBody: T, transferList?: Array<ArrayBuffer | MessagePort>): Promise<R>; nextTask(): void; dispose(): Promise<number[]>; } //# sourceMappingURL=worker-pool.d.ts.map