Есть ли способ автоматически перезапустить приложение nodejs после ошибки 503? - PullRequest
0 голосов
/ 18 февраля 2019

Мое приложение 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;

Ответы [ 2 ]

0 голосов
/ 18 февраля 2019

Ошибка не должна приводить к сбою приложения, вы должны ее обработать и просто зарегистрировать сообщение об ошибке.Например, с экспресс-обработчиком ошибок , см .: шаблоны обработки ошибок с экспресс-

Также, если ваше приложение аварийно завершает работу, некоторые программы могут перезапускаться.это автоматически.Самый простой из них - навсегда :

forever start app.js

Он перезапускает ваше приложение в случае сбоя.Но лучшим, на мой взгляд, является pm2 :

pm2 start app.js

Он делает то же самое, но имеет много дополнительных функций, таких как балансировка нагрузки, система развертывания, ведение журнала

Надеюсь, это поможет,
С уважением

0 голосов
/ 18 февраля 2019

Если вы можете настроить задания cron на своем сервере, тогда напишите скрипт, который проверяет ваши журналы на наличие сбоев и перезапускает приложение, если оно обнаружит ошибку 503, и присоединяет скрипт к заданию cron.

скрипт может быть похож на

if [ grep -q "503 or something specific" $logfile ]; then {
    service $whatever stop;
    service $whatever start;
} fi
...