首页 > 解决方案 > 有没有办法在 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;

标签: node.jswebsocketshared-hostingpusher

解决方案


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

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

forever start app.js

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

pm2 start app.js

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

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


推荐阅读