Node进程退出时如何进行数据库调用?

时间:2019-06-21 15:07:06

标签: node.js database asynchronous process exit

我试图在节点进程退出时插入数据库。

我知道process.on('exit', [fn])不能做任何异步的事情,因此我正在尝试找到解决方法。

我正在使用Sequelize,但是无论ORM,它仍然是异步DB调用。我尝试过

process.on('exit', async () => {
  console.log('Process terminating');
  await Status.update({
    running: 0,
    }, {
    where: {
      name: 'myStatus'
    }
  });
  process.exit();
});

但是显然这是行不通的,因为我们不能在退出时执行异步操作。

我已经看到了一些针对此问题的SO解决方案(例如How to perform an async operation on exit),但似乎必须有一个更为优雅的解决方案。此外,我不确定是否会捕获所有退出事件。我宁愿不安装一个照顾它的依赖项。有原生的Node方法可以做到这一点吗?

0 个答案:

没有答案