当节点中的某个函数崩溃时,它往往会导致整个应用程序崩溃。通过pm2之类的解决方案和/或具有用于未捕获异常的全局侦听器的解决方案,可以减轻这种情况。
在AppEngine Standard NodeJS中如何处理?如果发生未捕获的异常-它们是否会自动恢复(并记录)-允许其他功能仍然运行,还是必须做一些手动工作来处理这种情况?
答案 0 :(得分:3)
如果您的Node.js应用程序崩溃,则AppEngine会将其错误记录在其日志记录机制中,然后重新启动。如果仍然崩溃,则会将应用程序标记为不健康:
Google App Engine Node.js Application Unhealthy
如果您不想依赖AppEngine,可以随时将此代码段添加到所有Node.js应用程序中:
const someFn = // do something to handle exceptions
process.on("unhandledRejection", someFn );
尽管我建议不要这样做。
就我而言,个人而言,我更喜欢将计算机安装在Google Cloud中(没有AppEngine),并为我提供一台服务器,可以在其中安装PM2,并可以在其中添加所需的香料,但是如果您投资了AppEngine,是您可以做的最好的事情。
您需要记住的另一件事是,即使GAE记录了错误,您仍然有日志限制,因此,如果您的应用程序一直崩溃,那么最终您会遇到问题。 / p>
此外,在您的代码(咳嗽 Sanctuary / Folktale)中使用Monad会迫使您处理异常,这也有助于:P