Node.js:通过cluster.fork()调用不同的行为

时间:2012-04-16 14:43:04

标签: node.js redis cluster-computing multiprocess

我正在使用Node和Redis,我需要在发生事件时向redis添加订阅者。问题是我只希望处理发生一次......我真的很想只需要我的一个分叉进程来监听redis。

刚才我测试过看看我是否可以在另一个文件中分叉一个新的集群并让它从那里开始,但没有快乐。有谁知道怎么做?

我正在运行最新的稳定版Node(0.6.15)

这是我的代码(2个文件):


clusterTest1:
---
var c2 = require('./clusterTest2');

console.log('clusterTest1');
//c2.test();
---

clusterTest2: 
---
var cluster = require ('cluster');

console.log('clusterTest2');

if (cluster.isMaster) {
    cluster.fork();
} else {
    console.log('cluster spawned');
}
---

输出:

clusterTest2 clusterTest1 clusterTest2 产生了集群 clusterTest1

谢谢!

1 个答案:

答案 0 :(得分:0)

我使用process.env.NODE_WORKER_ID找到了解决方法。可以根据NODE_WORKER_ID运行不同的代码,这解决了我只有一个实例订阅消息的问题。