redis-smq-common
Version:
RedisSMQ Common Library provides many components that are mainly used by RedisSMQ and RedisSMQ Monitor.
30 lines • 1.54 kB
TypeScript
import { ICallback } from '../async/index.js';
import { RedisLock } from '../redis-lock/index.js';
import { ILogger } from '../logger/index.js';
import { PowerSwitch } from '../power-switch/index.js';
import { IRedisClient } from '../redis-client/index.js';
import { Runnable } from '../runnable/index.js';
import { WorkerRunnable } from './worker-runnable.js';
export type TWorkerResourceGroupEvent = {
'workerResourceGroup.error': (err: Error) => void;
};
export declare class WorkerResourceGroup extends Runnable<TWorkerResourceGroupEvent> {
protected readonly powerManager: PowerSwitch;
protected readonly locker: RedisLock;
protected readonly redisClient: IRedisClient;
protected readonly logger: ILogger;
protected workers: WorkerRunnable<unknown>[];
protected runWorkersLocked: boolean;
constructor(redisClient: IRedisClient, logger: ILogger, resourceGroupId: string);
protected lock: (cb: ICallback<void>) => void;
protected runWorkers: (cb: ICallback<void>) => void;
protected shutDownWorkers: (cb: ICallback<void>) => void;
protected releaseLock: (cb: ICallback<void>) => void;
protected getLogger(): ILogger;
protected goingUp(): ((cb: ICallback<void>) => void)[];
protected goingDown(): ((cb: ICallback<void>) => void)[];
protected handleError(err: Error): void;
addWorker: (filename: string, payload: unknown) => void;
loadFromDir: (workersDir: string, payload: unknown, cb: ICallback<void>) => void;
}
//# sourceMappingURL=worker-resource-group.d.ts.map