Executei alguns processos de estratégia em segundo plano e levei uma desvantagem:


Claramente o processo está em execução, os dados também estão atualizados, mas o PM2 mostra que está parado.
Se confiar no PM2 para reiniciar diretamente, na verdade interrompe o processo que ainda está trabalhando.
Depois percebi: PM2 / launchd / ficheiro pid são apenas camadas de monitoramento que registam o estado — se ele registou o processo, não significa que o processo esteja realmente em execução.
É preciso verificar o ficheiro de saúde gerado pelo próprio processo — a última atualização foi há poucos minutos + o número de processos corresponde = está vivo.
Escrevi um script de inspeção que reporta 4 valores para cada processo ao mesmo tempo:
- O processo está ou não (verificado com ps)
- PM2 / launchd está registado?
- Quando foi a última atualização do ficheiro de saúde
- Se os três valores correspondem
Contanto que o ficheiro de saúde seja recente, não o consideramos como morto.
Lição de engenharia: para determinar se o "sistema está vivo ou não", não olhe apenas para a camada de monitoramento que você criou, olhe para o que o sistema gera por si próprio e se está atualizado.
Ver original
Esta página pode conter conteúdos de terceiros, que são fornecidos apenas para fins informativos (sem representações/garantias) e não devem ser considerados como uma aprovação dos seus pontos de vista pela Gate, nem como aconselhamento financeiro ou profissional. Consulte a Declaração de exoneração de responsabilidade para obter mais informações.
  • Recompensa
  • Comentar
  • Republicar
  • Partilhar
Comentar
Adicionar um comentário
Adicionar um comentário
Nenhum comentário
  • Fixar