我有一些代码看起来非常类似于集群文档中的示例:http://nodejs.org/docs/v0.6.0/api/cluster.html http://nodejs.org/docs/v0.6.0/api/cluster.html, 以机智:
var cluster = require('cluster');
var server = require('./mycustomserver');
var numCPUs = require('os').cpus().length;
if (cluster.isMaster) {
var i;
// Master process
for (i = 0; i < numCPUs; i++) {
cluster.fork();
}
cluster.on('death', function (worker) {
console.log('Worker ' + worker.pid + ' died');
});
} else {
// Worker process
server.createServer({port: 80}, function(err, result) {
if (err) {
throw err;
} else {
console.log('Thread listening on port ' + result.port);
}
});
}
我已经安装了 node-inspector 并尝试使用它和 Eclipse V8 插件,详细信息请参见https://github.com/joyent/node/wiki/Using-Eclipse-as-Node-Applications-Debugger https://github.com/joyent/node/wiki/Using-Eclipse-as-Node-Applications-Debugger来调试我的应用程序,但看起来我无法将调试器连接到分叉的集群实例以在有趣的服务器逻辑处放置断点——我只能调试应用程序中生成集群进程的部分。有谁知道我实际上是否可以做这样的事情,或者我是否必须重构我的应用程序以在调试模式下仅使用单个线程?
我是 Node.js 新手,所以我希望我在这里遗漏了一些明显的东西。
var fixedExecArgv=[];
fixedExecArgv.push('--debug-brk=5859');
cluster.setupMaster({
execArgv: fixedExecArgv
});
信用去往谢尔盖的帖子 http://youtrack.jetbrains.com/issue/WEB-1919.
我改变了我的server.js
仅分叉一个工作人员主要用于测试这一点,然后在分叉上方添加代码。这解决了我的调试问题。感谢谢尔盖的解释和提供解决方案!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)