Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

meu script nodejs não está saindo sozinho após a execução bem-sucedida


Acabei de passar por esse problema.

O problema de usar apenas process.exit() é que o programa em que estou trabalhando estava criando handles, mas nunca os destruindo.

Ele estava processando um diretório e colocando dados em orientdb .

então algumas das coisas que aprendi é que as conexões de banco de dados precisam ser fechadas antes de me livrar da referência. E esse process.exit() não resolve todos os casos.

Quando meu projeto processou 2.000 arquivos. Restariam cerca de 500 unidades, e as alças extras teriam preenchido a memória de trabalho disponível. O que significa que não poderia continuar. Portanto, nunca atingindo o process.exit no final.

Por outro lado, se você fechar os itens que estão solicitando que o aplicativo permaneça aberto, poderá resolver o problema na origem.

As duas "Funções não documentadas" que pude usar foram
process._getActiveHandles();
process._getActiveRequests();

Não tenho certeza de quais outras funções ajudarão a depurar esses tipos de problemas, mas esses foram incríveis.

Eles retornam uma matriz e você pode determinar muito sobre o que está acontecendo em seu processo usando esses métodos.

Eu só espero que ajude alguém tropeçando neste post.