Jeg har lige været igennem dette problem.
Problemet med bare at bruge process.exit()
er, at det program, jeg arbejder på, skabte håndtag, men aldrig ødelægge dem.
Den behandlede en mappe og indsatte data i orientdb .
så nogle af de ting, jeg er kommet for at lære, er, at databaseforbindelser skal lukkes, før man slipper af med referencen. Og det process.exit()
løser ikke alle sager.
Da mit projekt behandlede 2.000 filer. Det ville komme ned til omkring 500 tilbage, og de ekstra håndtag ville have fyldt den tilgængelige arbejdshukommelse op. Hvilket betyder, at det ikke ville kunne fortsætte. Derfor når du aldrig process.exit
til sidst.
På den anden side, hvis du lukker de elementer, der anmoder appen om at forblive åben, kan du løse problemet ved kilden.
De to "Udokumenterede funktioner", som jeg var i stand til at bruge, var
process._getActiveHandles();
process._getActiveRequests();
Jeg er ikke sikker på, hvilke andre funktioner der vil hjælpe med at fejlfinde disse typer problemer, men disse var fantastiske.
De returnerer et array, og du kan bestemme meget om, hvad der foregår i din proces ved at bruge disse metoder.
Jeg håber bare, at det hjælper andre, der falder over dette indlæg.