每次在服务器上引发异常时都必须重新启动Meteor

问题描述

在开发中,我看到服务器上引发异常时...我无法在客户端中重新启动Meteor之前无法通过客户端访问该应用程序。这可能需要一些时间。这应该发生吗?在Prod上,这是否需要手动重新启动服务器?谢谢!

解决方法

这应该发生吗?

是的,但是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);
});

通过这种方式捕获它,该异常将不会导致应用崩溃,即无需自动重启。由于仍然可能有其他原因导致失败(例如,内存不足问题),因此我仍建议在生产中使用流星或类似方法。大概流星的Galaxy托管也将为您解决这个问题。