Redis pubsub消息队列但具有回调功能,如ZeroMQ中所示

 雅婷永幸482 发布于 2022-12-20 09:59

我找到了以下代码实现了一个异步消息队列(实际上没有队列,只有文件)与ZeroMQ和Node.js

setInterval(function() {
  var value = { id: i++, date: new Date() };
  WriteFile(value.id + ".dat", value);

  client.send(value, function(result) {
    console.log(value, result);
    DeleteFile(value.id + ".dat");
  });
}, 10000); 

代码来自这里.

"WriteFile"和"DeleteFile"函数稍后在代码中定义,但没有什么特别之处.

函数"client.send"也在另一个文件中定义,其中定义了回调.很明显,当消息传输成功时,ZeroMQ提供了一个回调.

现在我想做这样的事情,但为了简单起见,使用Redis pubsub而不是ZeroMQ.据我了解,node_redis模块的"发布"功能没有回调.

我的问题是,有没有办法实现这样的东西?我非常喜欢编写文件然后在传输完成时删除它们的想法,但我希望它能在Redis中完成.我知道我正在抓稻草,但如果有人有任何想法,我会很乐意听.

1 个回答
  • 所有redis模块的命令都有一个可选的回调作为最后一个参数.

    所以做类似的事情

    client.publish('channel', 'message', function(err) {
      if (err) throw err;
    });
    

    应该按预期工作.

    2022-12-20 10:01 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有