【问题标题】:Have to restart Meteor every time exception is thrown on Server每次在服务器上引发异常时都必须重新启动 Meteor
【发布时间】:2023-03-30 15:39:01
【问题描述】:
在开发中,我看到当服务器上抛出异常时......我无法通过客户端访问应用程序,直到我在终端中重新启动 Meteor。这可能需要一些时间。这应该发生吗?在 Prod 上,这是否需要手动重新启动服务器?谢谢!
【问题讨论】:
标签:
javascript
node.js
meteor
【解决方案1】:
这应该发生吗?
是的,但是一旦您编辑其中一个文件,Meteor 也会重新启动,大概是为了解决异常的原因。
在 Prod 上,这是否需要手动重启服务器?
是的,它会的!如果发生这种情况,许多人使用forever 自动重启他们的生产应用程序,但现在我真的认为应该使用 [Meteor-up] (http://meteor-up.com/) 来部署和运行生产应用程序。此外,我强烈建议在生产中添加一个包罗万象的功能。您的服务器代码中的某个人添加了以下内容:
process.on('uncaughtException', function(err) {
// handle the error safely
console.log("uncaughtException: ", err.message, err.stack);
});
通过这种方式捕获异常,不会导致应用崩溃,即不需要自动重启。由于仍然可能有其他原因失败(例如,内存不足问题),我仍然建议在生产中使用 meteor-up 或类似的。大概 Meteor 的 Galaxy 托管服务也会为您解决这个问题。