2014-10-07 61 views
0

我目前正在照顾一个基本上是用于与其他员工进行交互的实时留言板的项目。Node.Js服务器不断崩溃,没有错误

基础知识已经开发完毕,我已经采取了这一点,我是相当新的节点,并在一般的发展。

我们的服务器只是在随机时间意外退出,没有错误。它每天发生一次,有时服务器负载很少,有时服务器负载很重。

没有为捕获的异常监听器:

process.on('uncaughtException', function(err) { 
    // handle the error safely 
    console.log("Uncaught exception: "+err); 
    }); 

,我们还打印错误控制台和一个日志文件,但也不断显示错误就退出之前!

我们使用快递和socket.io

任何帮助,将不胜感激。

这基本上是我们在服务器中的代码。我记录所有不同的过程,我可以看到,我不是在所有收到任何错误消息,它似乎总是在不同的东西正在执行崩溃:

process.on('uncaughtException', function(err) { 
    // handle the error safely 
    console.log("Uncaught exception: "+err); 
    }); 

app.configure(function(){ 
     app.use(express.cookieParser()); // Allow parsing of cookies 
     app.use(express.json());       // Support JSON parsng 
     app.use(express.urlencoded());      // Support URL encoded params 
     app.set('view engine', 'ejs');      // Define view engine as EJS 
     app.use(express.session({store: sessionStore, secret: sessSecret, key: sessKey})); 
     app.use(app.router);        // Use routes 
     app.use("/public", express.static(__dirname + '/public'));  // Define public directory 
    }); 



    var server = https.createServer(options, app).listen(app_port, function(){ 
     console.log("Express server listening on port " + app_port); 
    }); 

    // Require our routes module 
    var routesModule = require('./modules/routes.js')(app); 
    var svc_io = require("/usr/lib/node_modules/socket.io/index.js")(https); 
    var dbmodule = require("./modules/db.js"); 


var moment = require('/usr/lib/node_modules/moment/moment.js'); 
    var fs = require('/usr/lib/node_modules/npm/node_modules/graceful-fs/graceful-fs.js'); 
    var util = require('util'); 

    console.log = function(d){ 
     var time = moment().format('DD-MMM-YYYY HH:mm:ss.SSS'); 

     var log_file = fs.createWriteStream(__dirname + '/debug.log', {flags: 'a'}); 
     var log_stdout = process.stdout; 

     log_file.write(time + ' : ' + util.format(d) + '\n'); 
     log_stdout.write(time + ' : ' + util.format(d) + '\n'); 
     log_file.end(); 
    }; 

    var io = svc_io.listen(server); 
    var socketModule = require('./modules/socket.js')(app, io, sessionStore, cookieParser, sessKey, sessSecret); 
+1

我不确定,但我不认为我们真的可以真正为您提供这样一些代码的解决方案。这个异常可能是由许多事情引起的,但我不确定我们实际上是否有任何线索说“这是一个服务器问题”或“这是一个与您的代码有关的问题”,因为我们不知道您的代码是如何实际结构化(包括客户端和服务器)以及您实际拥有的服务器和基础设施......您能否给我们提供更多信息? – briosheje 2014-10-07 10:43:55

+0

嗨。感谢您的回应。我们使用的代码很多,其中一些代码对商业敏感,所以我知道我很难获得帮助。 基本上整个应用程序分为服务器,登录模块,路由模块,套接字模块和Oracle数据库模块。我不知道要分享哪些代码部分。 每次发生这种情况似乎是在一些不同的事件之后,我们无法复制...我知道这可能没有太大的帮助! – k2099 2014-10-07 10:57:00

+0

然后,我建议你实际记录正在发生的一切,并尝试了解事件本身之间是否有任何关系。如果事件之间没有关系,那么它可能只是一个与nodejs的核心有关的问题(尽管我怀疑它),或者它很可能是与您的服务器或基础架构本身有关的问题。理解这一点的最好方法(至少对我来说)是记录服务器端正在发生的每一个动作,因为它是实际产生问题的一方。 – briosheje 2014-10-07 11:02:45

回答

0

我猜你需要评论此和宇将得到错误点。

// process.on('uncaughtException', function (err) { 
// handle the error safely 
//console.log("Uncaught exception: "+err); 
// });