UNPKG

@apiratorjs/locking-redis

Version:

An extension to the core @apiratorjs/locking library, providing Redis-based implementations of distributed mutexes and semaphores for true cross-process concurrency control in Node.js.

24 lines 1.19 kB
import { types } from "@apiratorjs/locking"; import { RedisClientType } from "redis"; import { IReleaser } from "@apiratorjs/locking/dist/src/types"; import { BaseDistributedPrimitive } from "./base-distributed-primitive"; export declare class RedisDistributedMutex extends BaseDistributedPrimitive implements types.IDistributedMutex { /** * Holds the random lock token if we successfully acquire it. * Using a random token helps ensure that only the owner can release. */ private _lockValue?; constructor(props: types.DistributedMutexConstructorProps & { redisClient: RedisClientType; }); destroy(): Promise<void>; acquire(params?: types.AcquireParams): Promise<IReleaser>; cancel(errMessage?: string): Promise<void>; isLocked(): Promise<boolean>; runExclusive<T>(fn: () => Promise<T> | T): Promise<T>; runExclusive<T>(params: types.AcquireParams, fn: () => Promise<T> | T): Promise<T>; protected tryAcquire(timeoutMs: number): Promise<types.AcquireToken | undefined>; private throwIfDestroyed; protected release(token: types.AcquireToken): Promise<void>; } //# sourceMappingURL=redis-distributed-mutex.d.ts.map