【发布时间】:2016-09-18 07:58:36
【问题描述】:
我有一个 Node 应用程序在做一些异步的事情,我不能冒险其中一个模块做了坏事并卡住了,所以应用程序永远不会退出。 (它只是在向服务发送日志消息时发生。)
我不能直接使用process.exit,因为无论有多少异步操作挂起,它都会终止。不过我还是想尽早退出,所以这样不行:
function exit() {
setTimeout(function() {
process.exit(1);
}, 10000);
}
因为这将等待 10 秒,即使一切正常并且所有异步事件在 1 秒后完成。
我正在考虑检查事件循环是否为空,除了这个计时器,然后退出。这可以通过一些undocumented process methods 来完成,但我更喜欢避免这样的阴暗的东西。关于解决此问题的更好方法的任何想法?
【问题讨论】:
标签: javascript node.js asynchronous timeout