2012-03-15 29 views
0

我的node.js集群能够启动2个工作进程,并且工作正常。 这是伪代码。 但是,如果我打开Windows任务管理器杀死一个node.js进程,我预计它会重新启动。但它抛出错误(错误:频道关闭)。node.js:集群主进程异常:通道关闭

if (cluster.isMaster) { 

    for (var i = 0; i < numCPUs; i++) { 
    cluster.fork(); 
    } 

    cluster.on('death', function(worker) { 
    logger.fatal('worker ' + worker.pid + ' died. Restarting again ...'); 

    cluster.fork(); 


    }); 

} else { 
    // Worker processes have a express server. 
    ......... 
    ......... 
} 

错误:

[2012-03-15 09:46:20.906] [INFO] console - Total CPUs : 2 
[2012-03-15 09:46:22.182] [INFO] console - info - 'socket.io started' 
[2012-03-15 09:46:22.240] [INFO] console - info - 'socket.io started' 
[2012-03-15 12:20:04.973] [FATAL] choicebeat - worker 6928 died. Restarting agai 
n ... 
[2012-03-15 12:20:05.213] [ERROR] console - Exception in cluster master process: 
channel closed 
Error: channel closed 
    at ChildProcess.send (child_process.js:118:33) 
    at c:\HTML5\LIKEPREF\test\server\node_modules\socket.io-clusterhub\node_modu 
les\clusterhub\lib\index.js:150:22 
    at Array.forEach (native) 
    at ChildProcess.onmessage (c:\HTML5\LIKEPREF\test\server\node_modules\socket 
.io-clusterhub\node_modules\clusterhub\lib\index.js:149:15) 
    at ChildProcess.emit (events.js:88:20) 
    at Pipe.onread (child_process.js:102:16) 

貌似有点毛病socket.io-clusterhub。这是一种配置错误或错误?

回答