【发布时间】:2023-03-07 01:55:01
【问题描述】:
我的 nodejs 应用程序在 docker 容器中运行。我正在为使用 redis 的后台服务使用公牛队列。
我的机器上安装了 redis,当我尝试在 pm2 中运行队列时,我无法连接到 redis 这是我的应用程序中 redis 的配置
"redis" : {
"host": "192.168.1.98",
"port": "6379"
}
这是错误
0|stockProcessor | WARNING: NODE_APP_INSTANCE value of '0' did not match any instance config file names.
0|stockProcessor | WARNING: See https://github.com/lorenwest/node-config/wiki/Strict-Mode
0|stockProcessor | Error: connect ECONNREFUSED 127.0.0.1:6379
0|stockProcessor | at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1129:14) {
0|stockProcessor | errno: 'ECONNREFUSED',
0|stockProcessor | code: 'ECONNREFUSED',
0|stockProcessor | syscall: 'connect',
0|stockProcessor | address: '127.0.0.1',
0|stockProcessor | port: 6379
0|stockProcessor | }
0|stockProcessor | Error: connect ECONNREFUSED 127.0.0.1:6379
0|stockProcessor | at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1129:14) {
0|stockProcessor | errno: 'ECONNREFUSED',
0|stockProcessor | code: 'ECONNREFUSED',
0|stockProcessor | syscall: 'connect',
0|stockProcessor | address: '127.0.0.1',
0|stockProcessor | port: 6379
0|stockProcessor | }
配置注入
const Queue = require("bull");
const configR = require("config");
const redisConfig = configR.get("redis");
const constants = require("../constants");
const config = {
settings: {
stalledInterval: 5000,
maxStalledCount: 9999,
lockDuration: 60000,
lockRenewTime: 30000
}
};
const stockQueue = new Queue("stockQueue", redisConfig, config);
感谢任何帮助。 提前致谢
【问题讨论】:
-
看起来像一个配置错误,因为上面显示您的应用程序正在尝试连接到您的环回接口,而不是您在上面发布的 LAN 地址。请分享您注入所需配置的代码。
-
在我的配置文件中配置了上面的主机和端口当我记录 redisConfig 变量时,我得到了正确的 IP 和端口。
标签: node.js docker ubuntu redis pm2