我的NodeJS服务需要在用户点击ctrl-c或在Heroku上运行时完全退出(比如重新启动)。为了彻底关闭它,我需要执行一系列的async操作,比如向RabbitMQ发出一个“关机”事件(因此其他服务人员知道它已经消失了),干净地关闭数据库连接,并等待当前正在工作的进程完成。
我作为退出事件处理程序运行的任何代码都不能是异步的医生说。
侦听器函数只能执行同步操作。Node.js进程将在调用“exit”事件侦听器后立即退出,从而放弃事件循环中仍排队的任何其他工作。
那么,既然如此,我如何干净地关闭我的服务器?
发布于 2018-10-04 03:35:32
这将处理ctrl-c
process.on("SIGINT", () => {
setTimeout(() => {
process.exit();
}, 3000);
});我不确定赫鲁库的一半问题,但我希望这至少有帮助。
https://stackoverflow.com/questions/52638398
复制相似问题