redis-smq-common
Version:
Provides essential components and utilities shared across RedisSMQ packages.
31 lines • 1.48 kB
TypeScript
import { ICallback } from '../../async/index.js';
import { ILogger } from '../../logger/index.js';
import { IRedisClient } from '../../redis-client/index.js';
import { Runnable } from '../../runnable/index.js';
import { RunnableWorker } from '../runnable-worker.js';
export type TWorkerClusterEvent = {
'workerCluster.error': (err: Error) => void;
'workerCluster.workerAdded': (worker: RunnableWorker<unknown>) => void;
'workerCluster.workerRemoved': (workerId: string) => void;
};
export declare class WorkerCluster extends Runnable<TWorkerClusterEvent> {
protected static LOCK_TTL: number;
private readonly uniqueGroupIdentifier;
private readonly workerHandler;
private readonly workerLoader;
private readonly redisClient;
protected readonly logger: ILogger;
private locker;
constructor(redisClient: IRedisClient, logger: ILogger, uniqueGroupIdentifier: string | null, workerFilenamePattern?: string);
private handleWorkerError;
private acquireLock;
private releaseLock;
protected goingUp(): ((cb: ICallback) => void)[];
protected goingDown(): ((cb: ICallback) => void)[];
protected handleError(err: Error): void;
addWorker(filename: string, payload: unknown): RunnableWorker<unknown>;
loadFromDir: <WorkerPayload = unknown>(workersDir: string, payload: WorkerPayload, cb: ICallback) => void;
private assertDownState;
private validateDownState;
}
//# sourceMappingURL=worker-cluster.d.ts.map