2012-04-16 8 views
0

저는 Node와 Redis에서 작업 중이며 이벤트가 발생할 경우를 대비하여 구독자를 추가해야합니다. 문제는 처리가 한 번만 이루어지기를 바라는 것입니다 ... 그리고 저는 redis를 듣기 위해 갈래의 프로세스 중 하나만 필요로하고 싶습니다.Node.js : cluster.fork()를 통해 다른 동작 호출

지금 막 다른 클러스터에서 새 클러스터를 포크하고 시작할 수 있는지 테스트했지만 기쁨은 없습니다. 누구든지이 작업을 수행하는 방법을 알고 있습니까?


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 내가 노드의 최신 안정 버전을 실행하고

은 (0.6.15)

여기

내 코드 (2 개 파일)입니다 클러스터 생성 됨 clusterTest1

감사!

답변

0

process.env.NODE_WORKER_ID를 사용하여이 문제를 해결했습니다. 하나는 NODE_WORKER_ID에 따라 다른 코드를 실행할 수 있는데, 이는 하나의 인스턴스 만 메시지를 구독하는 문제를 해결합니다.