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

时间:2014-09-23 11:59:05

标签: node.js redis zeromq

我发现以下代码使用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); 

代码来自here

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

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

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

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

1 个答案:

答案 0 :(得分:5)

所有redis模块的命令have an optional callback as the last argument

这样做

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

应该按预期工作。