Redis服务连接后端服务Railway Medusa.js失败

问题描述 投票:0回答:1

我正在部署 Medusa.js 应用程序并尝试将 Redis 连接到我的后端服务。

当我使用变量“Redis.REDIS_URL”时,出现以下错误:

[ioredis] Unhandled error event: Error: getaddrinfo ENOTFOUND redis.railway.internal
`
I tried append "?family=0", and edited the server to add [::] before the port like the following:
`
app.listen(port, '::', () => {
    console.log(`Server listening on [::]${port}`);
});

如专用网络文档页面中所述。我还做了一些研究,发现了另一种可能的解决方案,其中我附加“?family=6”而不是文档中提到的“?family=0”,但这两种解决方案都不适合我。 目前,我检查日志,发现与 redis、event-bus-redis 和 redis-cache 的连接已建立,但我收到一系列与 BullMQ 及其配置方式相关的错误。根据记录,我没有在 event-but-redis 配置中编辑 BullMQ 选项。我按照有关如何安装 event-bus-redis 的文档进行操作,并将所有内容保留为默认值。经过研究,我认为这主要是因为 Redis 配置影响了 event-bus-redis。 以下是我日志中一长串错误中的一些错误。

level:
"error"
stack:
[ ]
0:
{ }
columnNumber:19
fileName:"/app/node_modules/bullmq/dist/cjs/classes/queue-base.js"
functionName:"new QueueBase"
lineNumber:36
methodName:null
native:false
typeName:null

1:
{ }
columnNumber:9
fileName:"/app/node_modules/bullmq/dist/cjs/classes/queue.js"
functionName:"new Queue"
lineNumber:18
methodName:null
native:false
typeName:null

2:{ }
columnNumber:27
fileName:"/app/node_modules/@medusajs/medusa/dist/services/job-scheduler.js"
functionName:"new JobSchedulerService"
lineNumber:122
methodName:null
native:false
typeName:null
node.js redis ioredis railway medusajs
1个回答
0
投票

经过长时间的调试,发现这个问题与 Medusajs 之前的某个版本有关,其中 Scheduled-jobs:queue 是 BullMQ 中的队列名称,BullMQ 是 event-bus-redis 中内置的依赖包一位 Medusa 贡献者通过将 Scheduled-jobs:queue 更改为 Scheduled-jobs-queue 解决了该问题,这是由于 BullMQ v5.12.12 更新会在队列名称中包含分号时引发错误。您可以在这里找到问题 如果将来有人遇到此问题,请升级到 Medusa 版本 1.20.10,其中包含解决此问题的新更改,以解决该问题。运行以下命令。

npm install @medusajs/[email protected]
© www.soinside.com 2019 - 2024. All rights reserved.