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.

23 lines 1.21 kB
import { AcquireParams, IDistributedSemaphore, IReleaser } from "@apiratorjs/locking/dist/src/types"; import { RedisClientType } from "redis"; import { types } from "@apiratorjs/locking"; import { BaseDistributedPrimitive } from "./base-distributed-primitive"; export declare class RedisDistributedSemaphore extends BaseDistributedPrimitive implements IDistributedSemaphore { readonly maxCount: number; constructor(props: types.DistributedSemaphoreConstructorProps & { redisClient: RedisClientType; }); waitForAnyUnlock(): Promise<void>; waitForFullyUnlock(): Promise<void>; destroy(): Promise<void>; freeCount(): Promise<number>; acquire(params?: AcquireParams): Promise<IReleaser<types.SemaphoreToken>>; protected release(token: types.AcquireToken): Promise<void>; cancelAll(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(ttlMs: number): Promise<types.AcquireToken | undefined>; private throwIfDestroyed; } //# sourceMappingURL=redis-distributed-semaphore.d.ts.map