Melhores Práticas de Processos
Limites de processos e workers protegem a segurança e a estabilidade - crie processos com segurança, dimensione pools honestamente e desligue graciosamente sob sinais do orquestrador.
Busque em todas as páginas da documentação
Limites de processos e workers protegem a segurança e a estabilidade - crie processos com segurança, dimensione pools honestamente e desligue graciosamente sob sinais do orquestrador.
child_process ou shell: true.cluster ou o modo cluster do PM2.spawn/execFile com arrays de argumentos em vez de exec com shell. Elimina injeção em entradas influenciadas pelo usuário.shell: true com strings de usuário interpoladas. Bloqueador de revisão de código.maxBuffer conscientemente em execFile ou evite APIs bufferizadas para saída grande. Use streaming com spawn em vez disso.exit ou trate error. Evite processos zumbis e vazamentos de FD.ArrayBuffer ao postar binários grandes para evitar custo de clonagem. Use a lista de transferência em postMessage.worker.on('error') e reinicie workers do pool em caso de falha. Evite que o pool encolha para zero silenciosamente.process.pid em logs estruturados. Depure qual worker tratou uma requisição.poolMax × workers × réplicas. Permaneça abaixo das conexões máximas do banco de dados.server.close() e aguarde pool.end() do DB antes de sair. Feche também os workers do BullMQ.unhandledRejection como fatal em APIs de produção. Política separada do SIGTERM gracioso.exec(\git checkout ${branch}`)` com branch controlada pelo usuário - injeção de comando.
Comece com min(4, cores - 1) e profile - dependente da carga de trabalho.
Não em VPS único; incomum dentro de pods K8s onde a escalabilidade de réplicas é suficiente.
PM2 adiciona recarregamento e monitoramento - ainda implemente o fechamento HTTP amigável ao esvaziamento no código do aplicativo.
Possível, mas certifique-se de que os agendadores e cron não sejam executados em todos os workers sem eleição de líder.
spawn('npm', ['run', 'build']) sem shell - multiplataforma com caminho npm documentado.
Teste os caminhos de spawn no CI do Windows se os desenvolvedores usarem sistemas operacionais mistos - documente os casos de borda de .cmd.
Bibliotecas não devem chamar process.exit - retorne erros para a orquestração de desligamento do aplicativo.
child_process para spawn da CLI do ffmpeg - worker_threads para computação pura em JS.
pool 10 × cluster 8 workers × 3 pods = 240 conexões de DB - verifique o limite.
kill -TERM <pid> enquanto realiza testes de carga com k6 ou loop curl.
Versões da Stack: Esta página foi escrita para Node.js 24.18.0 (Active LTS), npm 10+, TypeScript 5.6+, Express 5, Fastify 5, e NestJS 11.
Revisado por Chris St. John·Última atualização: 16 de jul. de 2026