redis-smq-common
Version:
Provides essential components and utilities shared across RedisSMQ packages.
36 lines • 1.48 kB
TypeScript
import { ICallback } from '../async/index.js';
import { EventEmitter, TEventEmitterEvent } from '../event/index.js';
import { PowerSwitch } from '../power-switch/index.js';
import { ILogger } from '../logger/index.js';
export declare abstract class Runnable<Event extends TEventEmitterEvent = TEventEmitterEvent> extends EventEmitter<Event> {
protected readonly id: string;
protected readonly powerSwitch: PowerSwitch;
protected readonly forceShutdownOnError: boolean;
protected abstract readonly logger: ILogger;
private waitingForUpCallbacks;
private waitingForDownCallbacks;
protected constructor(forceShutdownOnError?: boolean);
protected goingUp(): Array<(cb: ICallback<void>) => void>;
protected goingDown(): Array<(cb: ICallback<void>) => void>;
protected finalizeUp(): void;
protected finalizeDown(): void;
protected handleError(err: unknown): void;
private flushWaitingForUp;
private flushWaitingForDown;
protected executeGoingUpTasks(): void;
protected executeGoingDownTasks(): void;
isOperational(): boolean;
isRunning(): boolean;
isGoingUp(): boolean;
isGoingDown(): boolean;
isUp(): boolean;
isDown(): boolean;
run(): Promise<void>;
run(cb: ICallback): void;
shutdown(): Promise<void>;
shutdown(cb: ICallback): void;
ensureIsOperational(): Promise<void>;
ensureIsOperational(cb: ICallback): void;
getId(): string;
}
//# sourceMappingURL=runnable.d.ts.map