J'ai lancé plusieurs processus en arrière-plan pour différentes stratégies et j'ai eu une mauvaise expérience :


Clair que le processus tourne, les données sont aussi à jour, mais PM2 indique qu'il est arrêté.
Si je fais confiance à PM2 pour redémarrer directement, cela interrompt en fait le processus qui travaille encore.
Plus tard, j'ai compris : PM2 / launchd / fichier pid ne font que enregistrer l'état dans la couche de surveillance — savoir s'ils ont enregistré le processus ne signifie pas qu'il tourne réellement.
Il faut vraiment regarder le fichier de santé généré par le processus lui-même — la dernière mise à jour il y a quelques minutes + le nombre de processus qui correspond = en vie.
J'ai écrit un script de vérification automatique, chaque processus rapporte simultanément 4 valeurs :
- Si le processus est en cours (avec ps)
- Si PM2 / launchd l'a enregistré
- La dernière mise à jour du fichier de santé
- La cohérence entre ces trois éléments
Tant que le fichier de santé est récent, on ne le considère pas comme mort.
Leçon d'ingénierie : pour juger si le "système est vivant ou non", ne regarde pas seulement ce que dit la couche de surveillance que tu as construite, regarde si ce que le système lui-même produit est récent.
Voir l'original
Cette page peut inclure du contenu de tiers fourni à des fins d'information uniquement. Gate ne garantit ni l'exactitude ni la validité de ces contenus, n’endosse pas les opinions exprimées, et ne fournit aucun conseil financier ou professionnel à travers ces informations. Voir la section Avertissement pour plus de détails.
  • Récompense
  • Commentaire
  • Reposter
  • Partager
Commentaire
Ajouter un commentaire
Ajouter un commentaire
Aucun commentaire
  • Épingler