gpt4 book ai didi

javascript - Node JS - 记录工作集群最后一个异常

转载 作者:太空宇宙 更新时间:2023-11-03 22:36:41 24 4
gpt4 key购买 nike

我正在开发 Node JS 服务器 (0.10.30) 及其集群功能。每次工作人员终止时,我都会捕获“退出”事件并重新启动新工作人员。我还想(在主集群上)记录工作线程被终止的原因,例如异常或 fatal error 。

如何做到这一点?

我的 app.js 文件看起来像这样:

var cluster = require('cluster');
var numCPUs = 2;

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

cluster.on('exit', function(worker, code, signal) {
console.log('worker %d died. Starting a new worker:', worker.id);
cluster.fork();
});

} else {
var domain = require('domain');
var d = domain.create();
d.on('error', function(er) {
console.error('error: ', er.stack);
// I never get the memory fatal error here
});

d.run(function() {
// The memory runs out in an async call
});
}

谢谢,埃雷兹

最佳答案

好吧,您可以使用 send() 函数将消息从工作线程发送到主线程,如文档中所述:

http://nodejs.org/api/cluster.html#cluster_worker_send_message_sendhandle

但是 Node 的一般原则是按预期使用 stdout 和 stderr,所以我可能只会执行 console.error('whatever you need to say'); 如果是的话我。

====根据评论更新====

在大多数情况下,如果进程崩溃,那是因为未捕获的异常。因此,如果您可以预料到这些异常,请在适当的对象上监听它们。要捕获您未预测到的错误,请收听 uncaughtException进程上的事件,并在该处理程序中发送消息或控制台

关于javascript - Node JS - 记录工作集群最后一个异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26783275/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com