每次在服务器上抛出异常时都必须重新启动 Meteor
Have to restart Meteor every time exception is thrown on Server
在开发过程中,我发现当服务器抛出异常时...我无法通过客户端访问应用程序,直到我在终端中重新启动 Meteor。这可能需要一些时间。这应该发生吗?在 Prod 上,这是否需要手动重启服务器?谢谢!
Is this supposed to happen?
是的,但是 Meteor 也会在您编辑其中一个文件后立即重新启动,大概是为了修复异常的原因。
On Prod, would this then require a manual Server restart?
是的,会的!许多人使用 forever to automatically restart their production app if that happens, but nowadays I really think one should use [Meteor-up] (http://meteor-up.com/) 部署和 运行 生产应用程序。此外,我强烈建议在生产中添加 catch-all 。有人在您的服务器代码中添加:
process.on('uncaughtException', function(err) {
// handle the error safely
console.log("uncaughtException: ", err.message, err.stack);
});
通过这种方式捕获异常,异常将不会导致应用程序崩溃,即不需要自动重启。由于仍然可能有其他原因失败(例如,内存不足问题),我仍然建议在生产中使用 meteor-up 或类似的。想必 Meteor 的 Galaxy 托管也会为您解决这个问题。
在开发过程中,我发现当服务器抛出异常时...我无法通过客户端访问应用程序,直到我在终端中重新启动 Meteor。这可能需要一些时间。这应该发生吗?在 Prod 上,这是否需要手动重启服务器?谢谢!
Is this supposed to happen?
是的,但是 Meteor 也会在您编辑其中一个文件后立即重新启动,大概是为了修复异常的原因。
On Prod, would this then require a manual Server restart?
是的,会的!许多人使用 forever to automatically restart their production app if that happens, but nowadays I really think one should use [Meteor-up] (http://meteor-up.com/) 部署和 运行 生产应用程序。此外,我强烈建议在生产中添加 catch-all 。有人在您的服务器代码中添加:
process.on('uncaughtException', function(err) {
// handle the error safely
console.log("uncaughtException: ", err.message, err.stack);
});
通过这种方式捕获异常,异常将不会导致应用程序崩溃,即不需要自动重启。由于仍然可能有其他原因失败(例如,内存不足问题),我仍然建议在生产中使用 meteor-up 或类似的。想必 Meteor 的 Galaxy 托管也会为您解决这个问题。