1

我们正在运行一个 Node.js/Express 应用程序,它运行了几个小时,然后无缘无故地开始抛出 504 错误。由于我们目前无法追踪这些错误,我们需要每隔一小时左右重新启动应用程序,以确保它在周末仍然运行。

我们的 Ubuntu 服务器运行Dokku,然后它为我们的应用程序设置了一个容器。每次应用程序发出 504 时,我们都必须以docker restart appidroot 身份运行。

那么每小时自动重启节点进程的最佳方法是什么?

4

1 回答 1

4

无缘无故抛出 504 错误

它抛出这些是因为你的应用程序正在崩溃

目前无法追踪这些错误

你必须追踪他们。它们很可能是未处理的异常,您可以通过以下方式捕获和记录:

process.on('uncaughtException', function(error) {
   //look Ma, I died
});

那么每小时自动重启节点进程的最佳方法是什么?

因为我会感到难过,至少不要试图解决你的实际问题,即使你肯定是在以一种非常糟糕的方式解决症状而不是问题......

使用 cron。放一个脚本/etc/cron.hourly/restart_express来做。确保脚本文件具有执行权限并符合run-parts命名约束(无点等)。

于 2013-11-01T16:27:54.780 回答