有没有办法在 503 错误后自动重启 nodejs 应用程序?

Ren*_*ola 2 shared-hosting websocket node.js pusher

我的 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;
Run Code Online (Sandbox Code Playgroud)

boe*_*m_s 5

错误不应该让您的应用程序崩溃,您应该处理它并记录错误消息。例如,使用express 错误处理程序,请参阅:使用 express 的错误处理模式

此外,如果您的应用程序崩溃,某些程序可以自动重新启动它。最基本的一个是永远

forever start app.js
Run Code Online (Sandbox Code Playgroud)

它会在您的应用程序崩溃时重新启动。但我认为最好的是pm2

pm2 start app.js
Run Code Online (Sandbox Code Playgroud)

它做同样的事情,但有很多额外的功能,比如负载平衡、部署系统、日志管理

希望它有帮助,
最好的问候