【问题标题】:How can I connect redis cloud instance to bull queue?如何将 Redis 云实例连接到公牛队列?
【发布时间】:2022-07-08 08:12:17
【问题描述】:

我正在尝试将 redis 免费云实例与公牛队列连接,但由于无法连接而出现错误。

  1. 我试过下面的代码:
const Bull = require("bull");
const emailQueue = new Bull("email", {
  redis: "",
});

对于上面的代码,它给出了错误 Error: connect ECONNREFUSED 127.0.0.1:6379 消息。

  1. 还尝试过这样的事情:使用 tls 字段但没有用。
const Bull = require("bull");
const emailQueue = new Bull("email", {
   redis: {
     port: "",
     host: "",
     tls: { rejectUnauthorized: false },
   },
});

注意:我正在使用带有公牛队列的 redis 免费云实例,并且还下载了 redis Insight 桌面应用程序。我已将数据库添加到 redis Insight 桌面应用程序并且它已连接但在节点应用程序中它无法正常工作。我是否缺少任何配置?

【问题讨论】:

    标签: node.js redis bull-queue


    【解决方案1】:

    首先,您必须确保您的 redis 服务器在本地运行,因为您要连接到 127.0.0.1:6379。

    其次,要获取您可能遇到的连接错误,您可以尝试以下操作:

    emailQueue.on('error', (error) => {
        console.log(error);
    })
    

    对我来说,连接到本地 Redis 服务器没有问题,但我无法连接到远程 Redis 服务器,尤其是 Redis 实验室和 AWS ElasticCache。从错误消息中,我意识到我需要额外的身份验证,我只需要为 Redis Labs 提供主机、端口、用户名和密码,而我只需要为 AWS ElasticCache 提供主机、端口和密码,而将用户名保留为我的环境中的空字符串。

    const {
        REDIS_HOST,
        REDIS_PORT,
        REDIS_USERNAME,
        REDIS_PASSWORD,
    } = process.env
    
    const emailQueue = new Queue('email', {
        redis: {
          port: REDIS_PORT, 
          host: REDIS_HOST,
          username: REDIS_USERNAME,
          password: REDIS_PASSWORD
        }
    });
    

    我希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-20
      • 2022-07-29
      • 2019-12-19
      • 1970-01-01
      • 1970-01-01
      • 2019-10-08
      • 1970-01-01
      • 2023-03-12
      相关资源
      最近更新 更多