【发布时间】:2018-10-04 03:08:20
【问题描述】:
我的 NodeJS 服务需要在用户点击ctrl-c 的情况下彻底退出,或者在 Heroku 上运行时,它被关闭(比如重新启动)。要彻底关闭它,我需要执行一系列async 操作,例如向 RabbitMQ 发出“关闭”事件(以便其他服务知道它已经消失),干净地关闭数据库连接,并等待当前正在执行的任何进程中途要完成。
docs say 我作为退出事件处理程序运行的任何代码都不能是异步的。
监听函数只能执行同步操作。 Node.js 进程将在调用 'exit' 事件侦听器后立即退出,从而导致放弃仍在事件循环中排队的任何其他工作。
那么,鉴于此,我该如何彻底关闭我的服务器?
【问题讨论】:
标签: node.js asynchronous exit shutdown