UNPKG

redis-smq-common

Version:

Provides essential components and utilities shared across RedisSMQ packages.

31 lines 1.36 kB
import { Worker as WorkerThread } from 'worker_threads'; import { ICallback } from '../async/index.js'; import { EventEmitter } from '../event/index.js'; import { ILogger } from '../logger/index.js'; import { EWorkerType, TWorkerThreadParentMessage } from './types/index.js'; export type TWorkerEvent = { 'worker.error': (err: Error) => void; 'worker.data': (payload: unknown) => void; 'worker.terminated': () => void; }; export declare abstract class Worker<Reply> extends EventEmitter<TWorkerEvent> { protected abstract readonly type: EWorkerType; protected readonly id: `${string}-${string}-${string}-${string}-${string}`; protected readonly workerFilename: string; protected readonly initialPayload: unknown; protected workerThread: WorkerThread | null; private stdoutStream; private stderrStream; protected logger: ILogger; private isShuttingDown; protected constructor(workerFilename: string, initialPayload: unknown, logger: ILogger); private cleanupStreams; protected getWorkerThread(): WorkerThread; private setupWorkerListeners; protected postMessage(message: TWorkerThreadParentMessage, callback?: ICallback<Reply>): void; shutdown(cb: ICallback): void; private removeFromGlobalList; getId(): string; getWorkerFilename(): string; } //# sourceMappingURL=worker.d.ts.map