Bry*_*eld 8 lifecycle timeout settimeout node.js
我想为此进程添加一个小时的超时,以便在流死锁的情况下它不会永远保留.唯一的问题是如果我说setTimeout,进程没有机会提前结束.
有没有办法在大约一个小时后进入强制退出超时,而不保持进程运行?或者我在使用process.exit和没有超时之间停留?
Lou*_*uis 15
我不知道什么时候unref被添加到Node但现在这是一个可能的解决方案.重用马特的代码:
var timeoutId = setTimeout(callback, 3600000);
timeoutId.unref(); // Now, Node won't wait for this timeout to complete if it needs to exit earlier.
Run Code Online (Sandbox Code Playgroud)
医生说:
在setTimeout的情况下,当你没有创建一个单独的计时器来唤醒事件循环时,创建太多这些可能会对事件循环性能产生负面影响 - 明智地使用.
不要生吃它.
如果保存返回的值,则setTimeout可以在触发之前取消它clearTimeout,如下所示:
var timeoutId = setTimeout(callback, 3600000); // 1 hour
// later, before an hour has passed
clearTimeout(timeoutId);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9591 次 |
| 最近记录: |