【发布时间】:2014-11-17 15:05:20
【问题描述】:
我发现以下代码用 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 中完成。我知道我正在抓住稻草,但如果有人有任何想法,我会很乐意倾听。
【问题讨论】: