基本上我想要这样的语法:
app.on("event:terminate", dumpFunc);
因此,如果服务器因任何原因停止,我可以将数据转储到磁盘。
有没有办法做到这一点,或者我应该坚持每隔几秒钟用setTimeout
?
喜欢:
var badIdea = setTimeout(dumpFunc, 5000);
function dumpFunc(stuff){
//Do stuff
badIdea = setTimeout(dumpFunc, 5000);
}
我对这方面的任何建议持开放态度,但我需要崩溃时变量的状态才能在下一次加载时保持不变。虽然我同意,但不要崩溃可能是最好的做法,但目前这是不可避免的。
特别是我需要在任何一个期间保护
- 来自服务器的
SIGINT
/SIGKILL
到( +类型事件)node
CTRL
C
- 用户输入不符合预期并在查找
undefined
或的属性时使服务器崩溃NaN
理论上我可以将整个代码库包装在一个try
/catch
块中以防止后者,但有时我们会遇到循环条件(我知道,我知道,测试)或其他问题,并且需要终止进程。
我不指望在断电或磁盘故障的情况下能奇迹般地支持我们,但我们需要某种优雅的终止选项,所以我全神贯注。