pnclFEED Chave gratuita

Notas de quickstart

Mantenha o listener de quedas em Node.js rodando com pm2

O listener de quedas em Node é um processo de vida longa, e processos assim morrem. O pm2 os reinicia, gira seus logs e os inicia no boot.

O listener de quedas do quickstart de Node.js é um processo de vida longa, e processos de vida longa morrem: o VPS reinicia, o processo quebra, o deploy o varre. Uma aba de navegador ou uma sessão de screen não é a resposta para algo em que você confia. O pm2, o pequeno gerenciador de processos para Node, é: ele reinicia o listener numa queda, o inicia no boot e mantém seus logs em ordem.

O listener, supervisionado

O listener do quickstart mantém uma conexão aberta com o stream de quedas e a lê para sempre, como a página de Node.js o monta. Sob o pm2, o mesmo script vira um serviço gerenciado:

pm2 start listen.js -n drops
pm2 save
pm2 startup

A primeira linha inicia o script sob supervisão, a segunda o lembra, a terceira o engancha no boot do sistema. Uma queda agora significa um reinício em segundos, não um feed morto até alguém notar.

O que o reinício cobre, e o que não cobre

O pm2 reinicia o processo quando ele sai, o que cobre quebras, mortes por memória e reboots. Ele não conserta um stream que ficou quieto: uma conexão que permanece aberta mas não diz nada precisa da lógica de reconexão do próprio listener, que o quickstart embute. As duas camadas trabalham juntas: o listener cuida de uma conexão morta, o pm2 cuida de um processo morto.

Ajuste um atraso de reinício para que um loop de quebras não martele o endpoint do stream: um listener que reconecta num loop apertado é um problema para o stream, e a opção de atraso de reinício do pm2 espaça as novas tentativas.

Logs sem babá

A saída de console do listener vira o registro de diagnóstico, e o pm2 a escreve em arquivos com rotação em vez de um terminal que você fechou semana passada. Uma linha por lote de alertas e uma por reconexão bastam; o comportamento do stream de quedas, mensagens de controle incluídas, que a página de Python documenta; é a referência quando o log mostrar algo estranho.

pm2 logs drops

acompanha o registro ao vivo quando você quer assistir, e o deixa em paz quando não quer.

Quando você cresce além de um processo

O pm2 pode rodar o mesmo script duas vezes para duas máquinas, mas o stream de quedas mantém uma conexão por chave, então um segundo listener ao vivo com a mesma chave fecha o primeiro. Redundância neste stream significa um standby em outro host, não um cluster num host só. Para um único leitor, porém, pm2 mais a lógica de reconexão é a história de confiabilidade inteira.

Inicie uma vez, salve, enganche no boot. O listener continua ouvindo, e o fim de semana deixa de ser um risco.