Ejecuté varios procesos en segundo plano de estrategias y tuve una mala experiencia:


Claramente el proceso está en ejecución, los datos también son recientes, pero PM2 muestra que está detenido.
Si confío en que PM2 simplemente reinicie, en realidad interrumpe los procesos que todavía están trabajando.
Luego entendí: PM2 / launchd / archivos pid, solo son registros del estado en la capa de supervisión — si los registra o no, y si el proceso realmente está en ejecución, son cosas distintas.
Lo que realmente importa es el archivo de salud generado por el propio proceso — la última actualización fue hace unos minutos + el número de procesos coincide = está vivo.
Escribí un script de inspección que reporta 4 valores para cada proceso:
- Si el proceso está o no (usando ps)
- Si PM2 / launchd lo tiene registrado
- Cuánto tiempo hace que se actualizó el archivo de salud
- Si los tres datos coinciden
Mientras el archivo de salud sea reciente, no se considera muerto.
Lección de ingeniería: para determinar si el "sistema está vivo o muerto", no mires lo que dice la capa de supervisión que construiste, mira si lo que produce el sistema en sí mismo está actualizado.
Ver original
Esta página puede contener contenido de terceros, que se proporciona únicamente con fines informativos (sin garantías ni declaraciones) y no debe considerarse como un respaldo por parte de Gate a las opiniones expresadas ni como asesoramiento financiero o profesional. Consulte el Descargo de responsabilidad para obtener más detalles.
  • Recompensa
  • Comentar
  • Republicar
  • Compartir
Comentar
Añadir un comentario
Añadir un comentario
Sin comentarios
  • Anclado