【问题标题】:Kue connecting to localhost instead of the AWS elasticache hostKue 连接到 localhost 而不是 AWS elasticache 主机
【发布时间】:2020-03-09 04:51:06
【问题描述】:

我将这些配置传递给我的队列:

module.exports = {
    host: 'xxxxx-cluster.abnjj1.ng.0001.use1.cache.amazonaws.com',
    port: 6379
}

并创建 kue:

const kue = require('kue')
const MailJob = require('../app/jobs/MailJob.js')
const redisConfig = require('../config/redis')
const jobs = [MailJob]

class Queue {
    constructor(){
        this.kue = kue.createQueue(redisConfig)

        this.processQueue()
    }

    processQueue(){
        return jobs.forEach(job => this.kue.process(job.key, job.handle))
    }
}

module.exports = new Queue()

但它总是返回与本地主机连接相关的相同错误。这没有意义,因为我正在通过弹性疼痛的主机

Error: Redis connection to 127.0.0.1:6379 failed - connect ECONNREFUSED 127.0.0.1:6379
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1126:14)
Emitted 'error' event on Queue instance at:
    at RedisClient.<anonymous> (/home/laurabeatris/Área de trabalho/personal projects/kue-test/node_modules/kue/lib/redis.js:65:13)
    at RedisClient.emit (events.js:209:13)
    at RedisClient.on_error (/home/laurabeatris/Área de trabalho/personal projects/kue-test/node_modules/kue/node_modules/redis/index.js:401:14)
    at Socket.<anonymous> (/home/laurabeatris/Área de trabalho/personal projects/kue-test/node_modules/kue/node_modules/redis/index.js:279:14)
    at Socket.emit (events.js:209:13)
    at emitErrorNT (internal/streams/destroy.js:91:8)
    at emitErrorAndCloseNT (internal/streams/destroy.js:59:3)
    at processTicksAndRejections (internal/process/task_queues.js:80:21) {
  errno: 'ECONNREFUSED',
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '127.0.0.1',
  port: 6379
} 

我错过了什么吗?

【问题讨论】:

    标签: node.js amazon-web-services express redis kue


    【解决方案1】:

    因为你传递的选项错误,所以它是默认的。再次查看文档,你会看到 redis 配置进入了配置的redis

    例子

    var q = kue.createQueue({
      prefix: 'q',
      redis: {
        port: 1234,
        host: '10.0.50.20',
        auth: 'password',
        db: 3, // if provided select a non-default redis db
        options: {
          // see https://github.com/mranney/node_redis#rediscreateclient
        }
      }
    });
    

    在你的情况下

    this.kue = kue.createQueue({ redis: redisConfig })
    

    【讨论】:

    • 我将我的集群作为主机传递,但我仍然收到错误
    • 当我使用 docker 运行 redis 的本地实例时,我没有连接问题,但我的 redis 实例在 aws 上运行良好,我只想知道它不是的原因使用队列:(
    猜你喜欢
    • 2015-03-26
    • 2023-03-09
    • 1970-01-01
    • 2015-12-22
    • 2019-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-18
    相关资源
    最近更新 更多