如何从Redispopup对象,因为它们是实时添加的?

我想要一个Node.js进程运行,因为它检查Redis服务器是否有新的popup窗口。

另一个进程将会偶尔进行,Node进程将试图popup进来的任何东西.Node进程将保持运行。

任何人都可以指出一个好的方向吗?

我想弄清楚如何听这样的事件。 当然,我可以popup一次,但是如何让Node进程继续监听Redis服务器的任何添加?

您需要使用阻止popup窗口: http : //redis.io/commands/brpop

function waitForPush () { client.brpop(['list','otherlist',0], function (listName, item) { // do stuff waitForPush(); }); } 

这似乎是pub / sub的一个很好的用例: http : //redis.io/topics/pubsub

您的Node.js进程偶尔会推送到Redis,也可以在每次推送某个内容时发布到某个通道。 喜欢这个:

 var pushClient = redis.createClient(); //push something onto Redis pushClient.publish("pubsub-channel", "Just pushed something onto Redis"); 

那么你的另一个进程就会订阅那个频道。 每次消息事件被触发,你都会popup刚刚被推送的消息:

 var client = redis.createClient(); client.subscribe("pubsub-channel"); client.on("message", function(channel, message){ //pop off new item }); 

如何使用process.nextTick(…)recursion函数的修改版本

 function waitForPush () { client.brpop(['list','otherlist',0], function (listName, item) { // do stuff process.nextTick(waitForPush); }); }