将节点js与redis一起用作缓存和pub-sub代码。缓存存储有用消息的列表。在一个点之后,消息将从redis中删除。如果邮件数量低于10,我们必须发布'响应所有订阅者消费并执行某些操作。
以下是我的草稿发布商代码:
var redis = require('redis')
var pub = redis.createClient(6379, 'localhost');
pub.keys('message:*', function (err, keys){
if (err) return console.log(err);
if (keys.length < 10){
pub.publish("mchannel", "Messages threshold reached", function(err){
if (err) throw err;
});
}
});
订阅者代码:
var redis = require('redis')
var sub = redis.createClient();
sub.on("message", function(channel, message){
console.log("Message '" + message + "' on channel '" + channel + "' received!")
// Some action...
});
sub.subscribe("mchannel");
当我使用node命令执行发布者和订阅者代码时,消息只会按预期发布一次。
如何从发布商代码中不断轮询缓存更改并发布该消息?