node.js - 有没有办法在 503 错误后自动重启 nodejs 应用程序?
问题描述
我的 nodejs 应用程序在运行后每隔几周就会收到 503 资源超出错误,因此我需要通过 ssh 继续重新启动它。我想知道是否可以安装一些东西来在出现错误或崩溃时自动重新启动它。
我在错误期间检查了我们的 A2Hosting 服务器的进程数,但它只显示 0/50。
我正在实时使用推送器。
const express = require("express");
const router = express.Router();
const Pusher = require("pusher");
var pusher = new Pusher({
appId: "xxxxxx",
key: "xxxxxxxxxxxxxxxxxx",
secret: "xxxxxxxxxxxxxxx",
cluster: "ap1",
encrypted: true
});
router.post("/", (req, res) => {
const newVote = {
id: req.body.id,
points: 1
};
pusher.trigger("scan", "scan-player", {
id: req.body.id,
player_id: req.body.player_id,
admin_id: req.body.admin_id
});
return res.json({
success: true,
message: "Scan successful!",
id: req.body.id
});
});
module.exports = router;
解决方案
错误不应该让您的应用程序崩溃,您应该处理它并记录错误消息。例如,使用express 错误处理程序,请参阅:使用 express 的错误处理模式
此外,如果您的应用程序崩溃,某些程序可以自动重新启动它。最基本的是永远:
forever start app.js
它在崩溃时重新启动您的应用程序。但我认为最好的是pm2:
pm2 start app.js
它做同样的事情,但有很多额外的功能,比如负载平衡、部署系统、日志管理
希望它有帮助,
最好的问候
推荐阅读
- scala - ScalaMock,基于 ClassTag 返回
- codeigniter - codeigniter 数据未插入
- applescript - 如何在苹果脚本中将脚本对象作为参数传递
- javascript - 从给定索引排序数组
- javascript - 如何使用 HERE maps api 检测用户位置的对象或最近的标记,显示路径,如 route api?
- python - NameError:名称'args'未定义?
- grafana - 如何通过对石墨的一次请求获得一个平均值
- fortran - Fortran 未定义对 _[子例程名称] 的引用
- ios - Ionic 4 - Facebook 插件返回“用户已取消”。在 iOS 上尝试登录时
- node.js - 使用 Azure DevOps 部署 Node.js 应用程序会导致有关缺少模块的错误