import { Module, Global } from "@nestjs/common"; import { BullModule } from "@nestjs/bullmq"; import { ConfigModule, ConfigService } from "@nestjs/config"; @Global() @Module({ imports: [ BullModule.forRootAsync({ imports: [ConfigModule], useFactory: (configService: ConfigService) => ({ connection: { host: configService.get("redis.host", "localhost"), port: configService.get("redis.port", 6379), password: configService.get("redis.password"), }, defaultJobOptions: { attempts: 3, backoff: { type: "exponential", delay: 1000, }, removeOnComplete: true, removeOnFail: false, }, }), inject: [ConfigService], }), ], exports: [BullModule], }) export class QueueModule {}