使用node.js和redis(使用bull和throng)运行多个worker dynos(heroku)时超出了r14内存配额

ql3eal8s  于 2021-06-07  发布在  Redis
关注(0)|答案(0)|浏览(648)

我正在使用redis、bull和throng为node.js中的后台工作人员创建一个队列系统。
heroku上的一个worker示例一切都很好,但是每当我尝试启动另一个worker(总共两个)运行我的worker.js文件时。我在heroku中为我的worker dynos得到一个r14内存配额超出错误。
我想这和我的排队系统内存泄漏有关。当我查看日志时,似乎有些任务没有完成,而job:id is 被不断的ping,却没有回应,就像被挂了一样。
下面是我的worker.js文件的精简版本

const testQueue = new Queue('test', REDIS_URL);

function start() {
  try {
    testQueue.process(maxJobsPerWorker, async job => {
      const res = await getTest(
        job.data.test
      );

      return res.data;
    });
  } catch (err) {
    console.log(err);
  }
}

throng({ workers, lifetime: Infinity }, start);

这是我的redis控制器,用于向队列添加项目

const testQueue = new Queue('test', REDIS_URL);

exports.createTest = async (req, res) => {
  const { test } = req.body;
  const queue = testQueue

  const job = await queue.add({
      test
  });
  res.json({ id: job.id });
};

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题