Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Cannot connect NestJS Bull to Elasticache (Redis)

I stuck when connecting NestJS Bull to AWS Elasticache on deployment

On local I easily connect to Redis by

import { Module } from '@nestjs/common';
import { BullModule } from '@nestjs/bull';

@Module({
  imports: [
    BullModule.forRoot({
      redis: {
        host: 'localhost',
        port: 6379,
        password: 'secret',
      },
    }),
  ],
})
export class AppModule {}

I even try on https://app.redislabs.com/ a official Redis cloud. It still working.

But on deployment with Elasticache. There is no error on startup but the queue is not worked as expected

My code last year was worked, But now no response

import Redis from 'ioredis';

@Module({
  imports: [
    BullModule.forRoot({
      createClient: () => {
        return config.get('redis.cluster.host')
          ? new Redis.Cluster([
              {
                port: +config.get('redis.cluster.port'),
                host: config.get('redis.cluster.host'),
              },
            ])
          : new Redis(+config.get('redis.standalone.port'), config.get('redis.standalone.host'));
      },
    }),
    FeeQueue,
  ],
  providers: [],
  exports: [],
})
export class QueuesModule {}

Could you have time to help me. Thanks

like image 954
Nguyen Manh Thang Avatar asked Nov 18 '25 21:11

Nguyen Manh Thang


1 Answers

I don't know if it'll be the same for you, but I just ran into a similar issue. The queue wasn't working, but no error logged. After a lot of testing, I finally got it to log an error saying that enableReadyCheck and maxRetriesPerRequest can't be used for bclients and subscibers. So I unset them:

BullModule.forRoot({
  createClient: (type) => {
    const opts =
      type !== 'client'
        ? { enableReadyCheck: false, maxRetriesPerRequest: null }
        : {}

    return config.get('redis.cluster.host')
      ? new Redis.Cluster([{ host, port }], opts)
      : new Redis({ host, port, ...opts});
  },
})
like image 108
Targash Avatar answered Nov 22 '25 05:11

Targash



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!