我正在使用 ioredis 作为我的工人的排队系统。
根据文档,BLPOP 采用任意数量的列表并从中弹出所需的项目。
我在这里遗漏了一些关于 redis/BLPOP 的重要细节吗?
任何帮助将不胜感激。
对于单个队列/列表,它完全完美。
这会阻止所有这些。
getMessage(callback) {
return new Promise((resolve, reject) => {
this.rclient.blpop(
QUEUE_TYPES.INVOICE_QUEUE,
QUEUE_TYPES.AUDIT_MUTATION_QUEUE,
QUEUE_TYPES.AUDIT_QUEUE,
QUEUE_TYPES.ERROR_QUEUE,
1,
(err, res) => {
if (err) reject(err);
else resolve(callback(err, res));
},
);
});
}
这很完美。
getMessage(callback) {
return new Promise((resolve, reject) => {
this.rclient.blpop(
QUEUE_TYPES.INVOICE_QUEUE,
1,
(err, res) => {
if (err) reject(err);
else resolve(callback(err, res));
},
);
});
}