如何从docker容器中运行的应用程序连接我机器上运行的redis

qyzbxkaa  于 2021-06-10  发布在  Redis
关注(0)|答案(1)|浏览(438)

我的nodejs应用程序正在docker容器中运行。我使用bull queue作为使用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);

谢谢你的帮助。提前谢谢

e37o9pze

e37o9pze1#

如果您查看文档,它看起来像 constructor 应该是字符串而不是对象。看起来您可以将redis config选项添加到 config 对象连接到它,或者从redis config对象生成一个字符串。
p、 我以前没有使用过bull,所以这里的文档可能不正确,并且允许您以这种方式传递属性

相关问题