【问题标题】:Is there any way to launch async operation in node js upon exit?有什么方法可以在退出时在节点 js 中启动异步操作?
【发布时间】:2012-06-30 09:19:30
【问题描述】:

Node js 模块在操作过程中请求远程服务上的一些资源,最好在退出时释放。我们知道有很好的:

process.on('exit', function() {
    // ...
});

但是据说它不会等待任何异步操作完成。所以问题是是否有任何解决方法(应该有一些,因为它是相当广泛的用例)?也许可以开始单独的过程或其他什么?..

【问题讨论】:

    标签: node.js optimization process


    【解决方案1】:

    我见过的唯一解决方法是添加一个等待循环,而不是从 .on('exit', 函数完成/返回,直到全局更新一个属性。 在设计方面完全是一个笨拙的工作,非常糟糕的做法,但我已经看到它适用于短调用(我认为有一些超时,但我从不费心去研究细节)。

    【讨论】:

      【解决方案2】:

      我认为您可以/应该在on('exit') 之前通过收听ctrl-c 信号来进行清理,就像在这个post 中一样。

      【讨论】:

      • SIGINT 事件在ctrl+c 上引发,放置一个异步操作并在异步的.then 中调用exit 事件可能会起作用,但是系统崩溃怎么办?它不会引发 SIGINT 事件,但不会调用 exit 和异步操作,有什么想法吗?
      猜你喜欢
      • 1970-01-01
      • 2016-05-14
      • 2020-10-25
      • 2017-03-27
      • 1970-01-01
      • 2019-01-11
      • 2017-02-27
      • 1970-01-01
      相关资源
      最近更新 更多