繁体   English   中英

Node.js:从子进程调用方法时,获取“尝试打开未关闭的连接”

[英]Node.js: Get “Trying to open unclosed connection” when calling method from child process

我收到“ 错误:试图打开未关闭的连接 ”,但我不认为这是由于数据库问题引起的,这就是为什么我很困惑。 针对此错误的大多数解决方案,请参考数据库连接问题。

我的目标是执行外部流程。 如果进程以退出代码0以外的其他内容关闭,例如,我想通过电子邮件发送警报。

我正在使用child.on('close',function(code) .... 从外部进程获取退出值(返回为“ code”),所以如果code!= 0,我想做点什么。 。也许重新运行测试...也许调用发送电子邮件的其他方法,等等。

每次尝试从child.on('close')内部调用方法时, 都会收到错误消息“试图打开未关闭的连接”。 这就是为什么我还要在同一块中处理save操作。

代码示例:

var spawn = require('child_process').spawn,
        child = spawn('sipp', ['-s', dnis,server, '-sn', scenario, '-m', '1','-i','127.0.0.1','-recv_timeout','1000']);
}
child.on('close',function(code){
     if(code != 0){
         Call().emailAlert(dnis, server, scenario, type, carrier);
     }        
        var TestResults = mongoose.model('test_results', TestResultsSchema);
        // Saving results to MongoDB
        var result = new TestResults({
            testType: type,
            dnis: dnis,
            server: server,
            result: code,
            carrier: carrier,
            date: Date.now()
        });
        result.save(function (err) {if (!err) {console.log ('Successful Save!')}
        else{console.log(err)}});
});

};

如果我删除:

if(code != 0){
     Call().emailAlert(dnis, server, scenario, type, carrier);
 }   

错误消失了。 对我来说,捕获流程的退出代码,并以此为基础的最佳方法是,调用Node.js中的其他方法(即通过电子邮件发送警报)吗?

我想我错了。 我将mongoose.connect更改为mongoose.createConnection ,此特定错误消失了……但是不幸的是,我留下了更多错误。 我将在另一个主题中打开主要问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM