UNPKG

redis-semaphore

Version:

Distributed mutex and semaphore based on Redis

32 lines (31 loc) 1.12 kB
/// <reference types="node" /> import { LockLostCallback, LockOptions } from './types'; interface AcquireOptions { identifier: string; lockTimeout: number; acquireTimeout: number; retryInterval: number; } export declare abstract class Lock { protected abstract _kind: string; protected abstract _key: string; protected _identifier: string; protected _acquireOptions: AcquireOptions; protected _refreshTimeInterval: number; protected _refreshInterval?: ReturnType<typeof setInterval>; protected _refreshing: boolean; protected _acquired: boolean; protected _onLockLost: LockLostCallback; protected abstract _refresh(): Promise<boolean>; protected abstract _acquire(): Promise<boolean>; protected abstract _release(): Promise<void>; constructor({ lockTimeout, acquireTimeout, retryInterval, refreshInterval, onLockLost }?: LockOptions); get identifier(): string; get isAcquired(): boolean; private _startRefresh; private _stopRefresh; private _processRefresh; acquire(): Promise<void>; release(): Promise<void>; } export {};