@technance/nestjs-redis-warlock

0.0.3 • Public • Published

@technance/nestjs-redis-warlock

@technance/nestjs-redis-warlock is a Redis-based locking utility for managing distributed locks in Node.js applications.

Installation

You can install the package using npm or pnpm.

npm

npm i @technance/nestjs-redis-warlock

pnpm

pnpm i @technance/nestjs-redis-warlock

Usage

To use @technance/nestjs-redis-warlock in your project, follow these steps:

Initialization

You can initialize the WarlockModule in two ways: asynchronously or synchronously.

Asynchronous Initialization

If you need to fetch the Redis URL from a configuration service, you can use the forRootAsync method:

import { WarlockModule } from '@technance/nestjs-redis-warlock';
import { ConfigService } from '@nestjs/config';

WarlockModule.forRootAsync({
    useFactory: (configService: ConfigService) => {
        return configService.get<string>("app.redis.url") || "redis://127.0.0.1:6379";
    },
    inject: [ConfigService],
});

Synchronous Initialization

If you have the Redis URL available, you can use the forRoot method:

import { WarlockModule } from '@technance/nestjs-redis-warlock';

WarlockModule.forRoot("redis://127.0.0.1:6379");

Using the Warlock Decorator

You can use the @Warlock decorator to lock a function. The decorator accepts a key and an optional TTL (time to live) value in seconds.

import { Warlock } from '@technance/nestjs-redis-warlock';

class SomeService {
    @Warlock("key_example", 60) // TTL is 60 seconds
    async someFunction() {
        // function implementation
    }
}

The @Warlock decorator ensures that the function is locked based on the provided key, preventing concurrent executions.

Readme

Keywords

none

Package Sidebar

Install

npm i @technance/nestjs-redis-warlock

Weekly Downloads

8

Version

0.0.3

License

ISC

Unpacked Size

145 kB

Total Files

15

Last publish

Collaborators

  • mehrabmp
  • mohammadxali
  • mowhcen
  • mhaghshenas
  • mohammadrezam9696
  • sepanta_97
  • parsa-io