Как отладить Node.JS экземпляр ветвления кластера? - PullRequest
0 голосов
/ 24 марта 2020

В моем пакете. json есть следующий скрипт для отладки

"start-admin-endpoints-debug": "одновременно \" npm run mon go -start- admin \ "wait-on \" nodemon --inspect-brk server.js \ "",

Использование в качестве ссылок следующих ссылок: link1 и link2

пробовал решение @Miroslav Bajtoš, а также @Bob и @ bnguyen777, но не может заставить его работать для отладки моего рабочего / дочернего экземпляра кластера.

Не знаю, есть ли в изменениях логика c внутри анонимной функции asyn c ( async () => {})();.

Запускается ли приложение в порту 448 при первом обнаружении главный процесс и может отлаживать этот экземпляр, но дочерний процесс после cluster.fork (), похоже, не работает в режиме отладки, даже связывая флаг --inspect-brk, как в коде ниже.

Любая помощь был бы признателен

if (cluster.isMaster) {

            var debug = process.execArgv.indexOf('--inspect-brk') !== -1;
            cluster.setupMaster({
              execArgv: process.execArgv.filter(function(s) { return s !== '--inspect-brk' })
            });
            if (debug) cluster.settings.execArgv.push('--inspect-brk=' + (5859));
                cluster.fork();

    /*         var debug = process.execArgv.indexOf('--inspect-brk') !== -1;
            if (debug){
                var fixedExecArgv=[];
                fixedExecArgv.push('--inspect-brk=5859');//'--debug-brk=5859' //'--inspect-brk=' + (3000)
                cluster.setupMaster({
                    execArgv: fixedExecArgv 
                  });
            } 
            cluster.fork(); */

            //var child = require('child_process');
            //console.log(`path.join(__dirname,'server.js'): ${path.join(__dirname,'server.js')}`);
            //cluster.fork('server.js',[],{execArgv:['--inspect-brk']});
            //cluster.fork({execArgv:['--inspect-brk=5859']});

    /*         const options = {
                execArgv: [],
                args: ['worker']
            };

            if (process.execArgv.some(arg => arg.startsWith('--inspect-brk'))) {
                options.execArgv.push('--inspect-brk=20002')
            }
            cluster.setupMaster(options);
            cluster.fork(); */

            debugger
            // eslint-disable-next-line no-unused-vars
            cluster.on('exit', function (worker, code, signal) {
                AppLog.verbose('-> server.js close and open again see log for error that throwed to exit');
                cluster.fork();
            });
        }

        if (cluster.isWorker) {
            debugger;
...