@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.
21 lines • 898 B
TypeScript
import { RedisClientType } from "redis";
import { IDistributedDeferred } from "./types";
import { types } from "@apiratorjs/locking";
export declare abstract class BaseDistributedPrimitive {
readonly name: string;
readonly implementation: string;
protected readonly _redisClient: RedisClientType;
protected _redisSubscriber?: RedisClientType;
protected _queue: IDistributedDeferred[];
protected _isDestroyed: boolean;
protected constructor(props: {
name: string;
redisClient: RedisClientType;
});
get isDestroyed(): boolean;
protected ensureSubscriber(): Promise<void>;
protected abstract tryAcquire(ttlMs: number): Promise<types.AcquireToken | undefined>;
protected abstract destroy(): Promise<void>;
protected abstract release(token: types.AcquireToken): Promise<void>;
}
//# sourceMappingURL=base-distributed-primitive.d.ts.map