UNPKG

murlock

Version:

A distributed locking solution for NestJS, providing a decorator for critical sections with Redis-based synchronization.

25 lines (24 loc) 1.06 kB
import { OnApplicationShutdown, OnModuleInit } from '@nestjs/common'; import { AsyncStorageService } from './als/als.service'; import { MurLockModuleOptions } from './interfaces'; export declare class MurLockService implements OnModuleInit, OnApplicationShutdown { readonly options: MurLockModuleOptions; private readonly asyncStorageService; private readonly logger; private redisClient; private lockScript; private unlockScript; constructor(options: MurLockModuleOptions, asyncStorageService: AsyncStorageService); onModuleInit(): Promise<void>; onApplicationShutdown(signal?: string): Promise<void>; private sleep; private log; private lock; private unlock; private acquireLock; private releaseLock; runWithLock<R>(lockKey: string, releaseTime: number, fn: () => Promise<R>): Promise<R>; runWithLock<R>(lockKey: string, releaseTime: number, wait: number | ((retries: number) => number), fn: () => Promise<R>): Promise<R>; private registerRedisErrorHandlers; private blockingLock; }