1
votes

Existe-t-il un moyen de redémarrer automatiquement l'application nodejs après une erreur 503?

Mon application nodejs continue d'obtenir une erreur de dépassement de 503 ressources toutes les quelques semaines après son exécution, je dois donc continuer à la redémarrer via ssh. Je me demandais s'il y avait quelque chose que je pouvais installer pour le redémarrer automatiquement chaque fois que j'obtiens une erreur ou qu'il se bloque.

J'ai vérifié le nombre de processus de notre serveur A2Hosting pendant l'erreur mais il dit simplement 0/50.

J'utilise Pusher en temps réel.

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;


0 commentaires

3 Réponses :


0
votes

Si vous pouvez configurer des tâches cron sur votre serveur, écrivez un script qui vérifie vos journaux d'échec et redémarre l'application si elle trouve une erreur 503 et attachez le script à une tâche cron.

le script peut être comme p >

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


0 commentaires

4
votes

Une erreur ne doit pas faire planter votre application, vous devez la gérer et simplement consigner le message d'erreur. Par exemple, avec gestionnaire d'erreurs express , voir: modèles de gestion des erreurs avec express

De plus, si votre application plante, certains programmes peuvent redémarrer il automatiquement. Le plus élémentaire est pour toujours :

pm2 start app.js

Il redémarre votre application lorsqu'elle plante. Mais le meilleur à mon avis est pm2 :

forever start app.js

Il fait la même chose, mais a beaucoup de fonctionnalités supplémentaires, comme l'équilibrage de charge, le système de déploiement, la gestion des journaux

J'espère que cela vous aidera,
Meilleures salutations


0 commentaires

0
votes

Si vous prévoyez d'essayer la suggestion de tâche / script cron, vous devrez enfin purger le fichier journal après le redémarrage, sinon cela entraînerait une boucle de redémarrage.

Il existe un outil appelé logrotate qui est implémenté par cron lui-même, vous pouvez ajouter vos propres fichiers de configuration dans /etc/logrotate.d

À mon humble avis, la meilleure option est de loin pm2 comme suggéré. C'est vraiment le meilleur et le plus simple des gestionnaires de processus.


0 commentaires