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