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

标签 node.js redis cluster-computing multiprocess

我正在使用 Node 和 Redis,我需要向 Redis 添加订阅者以防事件发生。问题是我只希望处理发生一次......而且我真的很想只需要我的一个 fork 进程来监听 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');
}
---

输出:

集群测试2 集群测试1 集群测试2 集群生成 clusterTest1

谢谢!

最佳答案

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

关于Node.js:通过 cluster.fork() 调用不同的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10176303/

相关文章:

node.js - 在loopbackjs应用程序上注册新用户

javascript - Nodejs 变量在 "await"之后未定义

php - Yii CRedisCache.php 将使用哪种 redis 数据类型进行缓存存储?

redis - 两台redis-server共享同一个dump.rdb文件的陷阱

java - Java中的高性能集群计算(和MPI)

linux - 如何在多节点集群上设置资源

c++ - 我将如何着手为 Windows 构建 Node 嵌合体?

redis - 比较 1000 万套彼此

linux - SGE(Sun Grid Engine)设置和调整

mysql - Sequelize 无法使用sync() 创建表