redis-smq-common
Version:
Provides essential components and utilities shared across RedisSMQ packages.
41 lines • 1.74 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 { Timer } from '../timer/index.js';
import { Backoff } from '../backoff/backoff.js';
export type TLockerEvent = {
'locker.up': (id: string) => void;
'locker.down': (id: string) => void;
'locker.goingUp': (id: string) => void;
'locker.goingDown': (id: string) => void;
'locker.error': (error: Error, id: string) => void;
};
export declare class RedisLock extends Runnable<TLockerEvent> {
protected readonly lockKey: string;
protected readonly ttl: number;
protected readonly redisClient: IRedisClient;
protected readonly autoExtendInterval: number;
protected readonly timer: Timer;
protected logger: ILogger;
protected backoff: Backoff | null;
constructor(redisClient: IRedisClient, logger: ILogger, lockKey: string, ttl: number, retryOnFail?: boolean, autoExtend?: boolean);
protected lock: (cb: ICallback) => void;
protected extend: (cb: ICallback) => void;
protected release: (cb: ICallback) => void;
protected autoExtendLock(): void;
protected goingUp(): Array<(cb: ICallback) => void>;
protected goingDown(): Array<(cb: ICallback) => void>;
protected handleError: (err: Error) => void;
protected finalizeUp(): void;
protected finalizeDown(): void;
run(): Promise<void>;
run(cb: ICallback): void;
acquireLock(cb: ICallback): void;
releaseLock(cb: ICallback): void;
extendLock(cb: ICallback): void;
isLocked(): boolean;
isReleased(): boolean;
getRetryAttempts(): number;
}
//# sourceMappingURL=redis-lock.d.ts.map