nodejs使用domain捕获工作进程异常

来源:互联网 发布:桔子桌面软件 编辑:程序博客网 时间:2024/06/05 20:59

domain 可以提前捕获到异常,从而使得 process 工作进程不崩溃

var cluster = require('cluster');var http = require('http');var numCPUs = require('os').cpus().length;var domain = require('domain');if (cluster.isMaster) {    for (var i = 0; i < numCPUs; i++) {        // fork 出新的进程        var worker = cluster.fork();        console.log(worker.id);    }} else {    http.createServer(function (req, res) {        var d = domain.create();        //  domain 捕获异常        d.on('error', function (err) {            res.writeHead(500);            res.end("error\n" + err);            d.dispose();        });        d.run(function () {            // 手工出发一个异常            throw new Error("a");            res.writeHead(200);            res.end("hello world\n" + process.pid);        })    }).listen(1234);    // 由于domain 捕获了错误,如下代码不会执行    process.on('uncaughtException', function (err) {        console.log("process error")    });}

参考文档http://deadhorse.me/nodejs/2013/04/13/exception_and_domain.html

原创粉丝点击