Node.js: вызывать другое поведение через cluster.fork()

Я работаю с 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 ответ

Решение

Я нашел обходной путь для этого, используя process.env.NODE_WORKER_ID. Можно запустить другой код в зависимости от NODE_WORKER_ID, что устраняет мою проблему с подпиской на сообщения только одного экземпляра.

Другие вопросы по тегам