在NestJS中连接Redis微服务会导致应用卡住



我试图使用Nest的文档设置一个简单的混合应用程序,但应用程序卡住了,没有抛出。

main.ts

import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import { Logger } from '@nestjs/common';
import { ConfigService } from '@nestjs/config';
import { MicroserviceOptions, Transport } from '@nestjs/microservices';
const logger = new Logger('Main');
async function bootstrap() {
const app = await NestFactory.create(AppModule);
const configService = app.get(ConfigService);
const redisConfig = configService.get('database.redis');
app.connectMicroservice<MicroserviceOptions>({
transport: Transport.REDIS,
options: {
url: `redis://${redisConfig.host}:${redisConfig.port}`,
},
});
await app.startAllMicroservices();
await app.listen(configService.get('app.port'));
}
bootstrap()
.then(() => logger.log('App running'))
.catch((e) => logger.error(e));

当我注释掉app.startAllMicroservices()或连接微服务的代码时,App running行被记录,有了它,应用程序卡住了。

我100%确定Redis是启动和运行和响应,我使用的Bull使用相同的配置,它运行得很好。

我试着在app.module中注释掉与上述无关的所有内容(除了ConfigModule之外的所有内容),但无济于事。如有任何帮助,不胜感激。

我正在运行最新版本的NestJS及其对等依赖。

刚刚解决了一个类似的问题。根据编写降级redis npm包的时间,从^4到^3。

From nestjs microservice redis docs要开始构建基于redis的微服务,首先安装所需的软件包(注意到目前支持的redis版本是^3,而不是最新的^4):

最新更新