Mysql
 sql >> Base de données >  >> RDS >> Mysql

mon script nodejs ne se ferme pas tout seul après une exécution réussie

Je viens de passer par ce problème.

Le problème d'utiliser simplement process.exit() est que le programme sur lequel je travaille créait des poignées, mais ne les détruisait jamais.

Il traitait un répertoire et mettait des données dans orientdb .

donc certaines des choses que j'ai apprises sont que les connexions à la base de données doivent être fermées avant de se débarrasser de la référence. Et ce process.exit() ne résout pas tous les cas.

Lorsque mon projet a traité 2 000 fichiers. Il en resterait environ 500 et les poignées supplémentaires auraient rempli la mémoire de travail disponible. Ce qui signifie qu'il ne pourrait pas continuer. Donc ne jamais atteindre le process.exit à la fin.

D'autre part, si vous fermez les éléments qui demandent à l'application de rester ouverte, vous pouvez résoudre le problème à sa source.

Les deux "Fonctions non documentées" que j'ai pu utiliser étaient

process._getActiveHandles();
process._getActiveRequests();

Je ne sais pas quelles autres fonctions aideront à déboguer ces types de problèmes, mais celles-ci étaient incroyables.

Ils renvoient un tableau, et vous pouvez déterminer beaucoup de choses sur ce qui se passe dans votre processus en utilisant ces méthodes.

J'espère juste que cela aidera tous ceux qui tomberont sur ce message.