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, что устраняет мою проблему с подпиской на сообщения только одного экземпляра.