我找到了以下代码,它使用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而不是ZeroMQ。据我所知,在node_redis模块的“发布”函数中没有回调。
我的问题是,有没有办法实现这样的东西?我真的很喜欢写文件然后删除它们的想法,因为传输是完全的,但是我想用Redis来完成。我知道我在抓稻草,但如果有人有任何想法,我会很乐意听的。
发布于 2014-09-23 12:28:51
所有redis模块的命令有一个可选的回调作为最后一个参数。
所以做一些类似的事情
client.publish('channel', 'message', function(err) {
if (err) throw err;
});应该能像预期的那样工作。
https://stackoverflow.com/questions/25994571
复制相似问题