dependencies Legend  Declarations  Module  Bootstrap  Providers  Exports cluster_RedisModule cluster_RedisModule_exports cluster_RedisModule_providers RedisService RedisService RedisModule RedisModule RedisModule->RedisService RedisService RedisService RedisService->RedisModule

File

packages/server/src/modules/redis/redis.module.ts

Providers

Exports

Methods

Async onApplicationShutdown
onApplicationShutdown(signal?: string)
Parameters :
Name Type Optional
signal string Yes
Returns : Promise<void>
import { Redis } from 'ioredis';
import { Global, Module, OnApplicationShutdown, Scope } from '@nestjs/common';
import { ConfigModule, ConfigService } from '@nestjs/config';
import { ModuleRef } from '@nestjs/core';

import { IORedisKey } from './redis.constants';
import { RedisService } from './redis.service';

@Global()
@Module({
  imports: [ConfigModule],
  providers: [
    {
      provide: IORedisKey,
      useFactory: async (configService: ConfigService) => {
        return new Redis(configService.get('redis') as any);
      },
      inject: [ConfigService],
    },
    RedisService,
  ],
  exports: [RedisService],
})
export class RedisModule implements OnApplicationShutdown {
  constructor(private readonly moduleRef: ModuleRef) {}

  async onApplicationShutdown(signal?: string): Promise<void> {
    return new Promise<void>((resolve) => {
      const redis = this.moduleRef.get(IORedisKey);
      redis.quit();
      redis.on('end', () => {
        resolve();
      });
    });
  }
}

results matching ""

    No results matching ""