Mysql
 sql >> Database >  >> RDS >> Mysql

il mio script nodejs non esce da solo dopo l'esecuzione riuscita

Ho appena affrontato questo problema.

Il problema con il solo utilizzo di process.exit() è che il programma su cui sto lavorando stava creando handle, ma non li distruggeva mai.

Stava elaborando una directory e inserendo dati in orientdb .

quindi alcune delle cose che ho imparato sono che le connessioni al database devono essere chiuse prima di sbarazzarsi del riferimento. E quel process.exit() non risolve tutti i casi.

Quando il mio progetto ha elaborato 2.000 file. Sarebbero rimasti circa 500 e le maniglie extra avrebbero riempito la memoria di lavoro disponibile. Il che significa che non sarebbe in grado di continuare. Quindi non raggiungere mai il process.exit alla fine.

Se invece chiudi gli elementi che richiedono l'apertura dell'app, puoi risolvere il problema alla fonte.

Le due "Funzioni non documentate" che sono stato in grado di utilizzare erano

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

Non sono sicuro di quali altre funzioni aiuteranno con il debug di questi tipi di problemi, ma questi sono stati sorprendenti.

Restituiscono un array e puoi determinare molto su cosa sta succedendo nel tuo processo usando questi metodi.

Spero solo che questo aiuti chiunque altro a imbattersi in questo post.