最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

使用cluster.fork()调试Node.js进程

运维笔记admin8浏览0评论

使用cluster.fork()调试Node.js进程

使用cluster.fork()调试Node.js进程

我有一些代码非常类似于.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,并尝试使用它和 V8插件来调试我的应用程序,但是看起来我无法将调试器连接到派生的集群实例上,以在其中放置断点。有趣的服务器逻辑-我只能调试产生集群进程的应用程序部分。有人知道我是否真的可以做这样的事情,还是在调试模式下必须重构我的应用程序以仅使用单个线程?

我是Node.js新手,所以我希望这里缺少明显的东西。

回答如下:
var fixedExecArgv=[];
fixedExecArgv.push('--debug-brk=5859');
cluster.setupMaster({ 
  execArgv: fixedExecArgv 
});

贷方转到Sergey's post。

我将我的server.js更改为仅派生一名工人来进行测试,然后在分叉上方添加了代码。这为我解决了调试问题。感谢谢尔盖(Sergey)解释和提供解决方案!!!>

发布评论

评论列表(0)

  1. 暂无评论