redis-smq-common
Version:
RedisSMQ Common Library provides many components that are mainly used by RedisSMQ and RedisSMQ Monitor.
23 lines • 1.14 kB
TypeScript
import { Worker as WorkerThread } from 'worker_threads';
import { ICallback } from '../async/index.js';
import { EventEmitter } from '../event/index.js';
import { EWorkerType, TWorkerThreadParentMessage } from './types/index.js';
export type TWorkerEvent = {
'worker.error': (err: Error) => void;
'worker.data': (payload: unknown) => void;
};
export declare abstract class Worker<Payload, 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;
protected logger: import("../logger/index.js").ILogger;
protected constructor(workerFilename: string, initialPayload?: unknown);
getId(): string;
protected getWorkerThread(): WorkerThread;
protected registerEvents(cb: ICallback<Reply> | Worker<Payload, Reply>): void;
postMessage(message: TWorkerThreadParentMessage): void;
shutdown(cb: ICallback<void>): void;
}
//# sourceMappingURL=worker.d.ts.map