我们正在运行一个 Node.js/Express 应用程序,它运行了几个小时,然后无缘无故地开始抛出 504 错误。由于我们目前无法追踪这些错误,我们需要每隔一小时左右重新启动应用程序,以确保它在周末仍然运行。
我们的 Ubuntu 服务器运行Dokku,然后它为我们的应用程序设置了一个容器。每次应用程序发出 504 时,我们都必须以docker restart appid
root 身份运行。
那么每小时自动重启节点进程的最佳方法是什么?
无缘无故抛出 504 错误
它抛出这些是因为你的应用程序正在崩溃
目前无法追踪这些错误
你必须追踪他们。它们很可能是未处理的异常,您可以通过以下方式捕获和记录:
process.on('uncaughtException', function(error) {
//look Ma, I died
});
那么每小时自动重启节点进程的最佳方法是什么?
因为我会感到难过,至少不要试图解决你的实际问题,即使你肯定是在以一种非常糟糕的方式解决症状而不是问题......
使用 cron。放一个脚本/etc/cron.hourly/restart_express
来做。确保脚本文件具有执行权限并符合run-parts
命名约束(无点等)。