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.

22 lines 1.16 kB
import { RedisClientType } from "redis"; import { types } from "@apiratorjs/locking"; import { BaseDistributedLockPrimitive } from "./base-distributed-lock-primitive"; export declare class RedisDistributedSemaphore extends BaseDistributedLockPrimitive implements types.IDistributedSemaphore { readonly maxCount: number; constructor(props: types.TDistributedSemaphoreConstructorProps & { redisClient: RedisClientType; }); waitForAnyUnlock(): Promise<void>; waitForFullyUnlock(): Promise<void>; destroy(message?: string): Promise<void>; freeCount(): Promise<number>; acquire(params?: types.TAcquireParams): Promise<types.IReleaser<types.TSemaphoreToken>>; cancelAll(errMessage?: string): Promise<void>; isLocked(): Promise<boolean>; runExclusive<T>(fn: () => Promise<T> | T): Promise<T>; runExclusive<T>(params: types.TAcquireParams, fn: () => Promise<T> | T): Promise<T>; protected tryAcquire(ttlMs: number): Promise<types.TAcquireToken | undefined>; protected release(token: types.TAcquireToken): Promise<void>; private ensureAlive; } //# sourceMappingURL=redis-distributed-semaphore.d.ts.map