在heroku上正常关闭node / express app

时间:2013-12-18 10:16:17

标签: node.js heroku express

我已经向Heroku部署了一个应用程序,并且我一直在从Logentries发送给我的R12错误。我已经看过解决这个问题的各种方法 - 但仍然没有快乐:(

这是我的引导程序:

var apiService = loader.load('apiService'),
    http = require('http'),
    server,
    app;

apiService.init(); // see later

app.configure(function() {
    RedisStore = loader.load('connect-redis')(express);
    redis_store = new RedisStore(config.redis);
    /* view and routes config...*/
});

server = http.createServer(app);
server.listen(process.env.PORT || 3000);

process.on('SIGTERM', function () {
    server.close();
    apiService.close();
    redis_store = null; // worth a punt?
});

apiService:

api.init = function () {
    mongoose.connect(mongourl);
};

api.close = function () {
    mongoose.connection.close();
};

其他人有这个问题/有什么想法吗?

1 个答案:

答案 0 :(得分:2)

如果您正在捕获SIGTERM,则需要在处理程序中明确退出该进程。

process.on('SIGTERM', function () {
    server.close();
    apiService.close();
    redis_store = null; // worth a punt?
    process.exit(0);
});