我正在使用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 });
};
暂无答案!
目前还没有任何答案,快来回答吧!