如何在不丢失当前打开请求的情况下重新加载Node.JS应用程序



我正在使用pm2重新加载我的应用程序,但在我的测试中,活动请求被重新加载取消。

我测试了一个等待时间为10秒的端点,用失眠请求对此端点的响应,然后在10秒等待完成之前,用pm2重载重新加载应用程序。但是发生的是pm2重新加载停止失眠请求,该请求以"0"结束;错误:服务器没有返回任何内容(没有标头,没有数据(;。

我做错什么了吗?pm2不是应该在等待状态下识别当前正在运行的请求吗?这可能是一个真正的生产请求,应用程序正在等待数据库响应。

您可以从node.js/express应用程序中捕获SIGTERM信号:

process.on('SIGTERM', () => {
console.info('SIGTERM signal received.');
console.log('Close http server.');
server.close(() => {
console.log('Http server closed.');
// You can close here other things that needs to, for example a mongodb/mongoose connection
mongoose.connection.close(false, () => {
console.log('MongoDb connection closed.');
process.exit(0);
});
});
});

相关内容

最新更新