首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Nodejs中,如何在多个队列上从redis中弹出

在Nodejs中,如何在多个队列上从redis中弹出
EN

Stack Overflow用户
提问于 2020-01-21 00:44:41
回答 2查看 433关注 0票数 0

我正在使用Redis npm库进行Redis连接。

我可以像下面这样从单个队列中弹出

代码语言:javascript
复制
redis.blpop('firstQueue', timeOut, (err, reply) => {
        console.log(reply);
});

但是我想从多个队列中弹出,如下所示

代码语言:javascript
复制
redis.blpop(['firstQueue', 'secondQueue', 'thrirdQueue'], timeOut, (err, reply) => {
            console.log(reply);
 });

但是来自多个队列的弹出不起作用。

我使用的是npm库Redis here

EN

回答 2

Stack Overflow用户

发布于 2020-01-21 03:49:58

这里有一个有效的解决方案,但请注意,我不确定这是否有效,它是否是好的实践

代码语言:javascript
复制
client.batch().blpop('firstQueue', timeOut)
.blpop('secondQueue', timeOut)
.blpop('thrirdQueue', timeOut).exec(function(err, reply) {
  if (err) console.log(err)

  console.log(reply)
})
票数 0
EN

Stack Overflow用户

发布于 2022-01-21 07:46:17

(这个问题很老,但只是以防万一……)

如果套餐不提供同时对多个列表进行blpop的函数( redis可以提供),可以直接尝试使用sendCommand函数:

redis.sendCommand(command: string, cb?: Callback<any>): boolean;

命令字符串类似于BLPOP firstQueue secondQueue thrirdQueue ${timeOut}

(参见redis文档:https://redis.io/commands/blpop )

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59827663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档