我想让Node.js进程运行,因为它正在检查Redis服务器是否有新的pop.
另一个进程是偶尔进行推送,Node进程将尝试弹出任何进入的进程.节点进程将继续运行.
有人能指出我的方向吗?
我正在试图弄清楚如何倾听这样的事件.当然,我可以弹出一次,但是如何让Node进程继续监听Redis服务器的任何添加?
gen*_*nry 14
你会想要使用阻止弹出:http://redis.io/commands/brpop
function waitForPush () {
client.brpop(['list','otherlist',0], function (listName, item) {
// do stuff
waitForPush();
});
}
Run Code Online (Sandbox Code Playgroud)
小智 11
这似乎是pub/sub的一个很好的用例:http://redis.io/topics/pubsub
偶尔推送到Redis的Node.js进程也可以在每次推送时发布到通道.像这样:
var pushClient = redis.createClient();
//push something onto Redis
pushClient.publish("pubsub-channel", "Just pushed something onto Redis");
Run Code Online (Sandbox Code Playgroud)
然后您的其他进程将订阅该频道.每次触发消息事件时,都会弹出刚刚推送的内容:
var client = redis.createClient();
client.subscribe("pubsub-channel");
client.on("message", function(channel, message){
//pop off new item
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6359 次 |
| 最近记录: |