UNPKG

@shagital/atomic-lock

Version:

Universal atomic locking with pluggable drivers (Redis, SQLite, File, Memory)

20 lines (19 loc) 802 B
import { LockDriver, LockInfo, RedisConfig } from '../types'; /** * Redis driver implementation using ioredis */ export declare class RedisLockDriver implements LockDriver { private config; private client; constructor(config: RedisConfig); private createRedisClient; tryAcquire(key: string, lockValue: string, expiryInSeconds: number): Promise<boolean>; tryAcquireMultiple(keys: string[], lockValue: string, expiryInSeconds: number): Promise<boolean>; release(key: string, lockValue: string): Promise<boolean>; releaseMultiple(keys: string[], lockValue: string): Promise<number>; exists(key: string): Promise<boolean>; getLockInfo(key: string): Promise<LockInfo | null>; cleanup(): Promise<void>; close(): Promise<void>; private getTtlFromValue; }