我有一个使用 NestJS 版本 9.2.0 和 Bull Queue 版本 4.9.0 的项目,它连接到 Redis 来安排作业。
在本地,这按预期工作,但是,当部署到暂存时,Bull 将无法连接,并且失败并出现错误
maxRetriesPerRequest
。
我的假设是,在登台时 Bull 无法通过 TLS 连接进行连接,但是我无法确认这确实是问题所在。
我尝试了以下方法但没有成功:
rediss://.....
?tls=true
tls: {}
对象作为 Redis 配置的一部分,然后在我导入为 BullModule
文件中用作工厂的 app.module
中使用该对象。
我的 app.module.ts 就像:
BullModule.registerQueue(
{
name: 'a',
redis: {
host: process.env.REDIS_HOST,
port: Number(process.env.REDIS_PORT),
},
},
{
name: 'b',
redis: {
host: process.env.REDIS_HOST,
port: Number(process.env.REDIS_PORT),
},
},
),
我把它修好了:
BullModule.forRoot({
redis: {
host: process.env.REDIS_HOST,
port: Number(process.env.REDIS_PORT),
},
}),
BullModule.registerQueue(
{
name: 'a',
},
{
name: 'b',
},
),
以这种方式修复代码后,它工作得很好。 (您也可以关注nest.js文档。)