Právě jsem prošel tímto problémem.
Problém s pouhým použitím process.exit()
je, že program, na kterém pracuji, vytvářel úchyty, ale nikdy je nezničil.
Zpracovával adresář a vkládal data do orientdb .
takže některé z věcí, které jsem se naučil, je, že databázová připojení musí být uzavřena, než se zbavím odkazu. A to process.exit()
neřeší všechny případy.
Když můj projekt zpracoval 2000 souborů. Zbylo by to asi na 500 a další úchyty by zaplnily dostupnou pracovní paměť. Což znamená, že nebude moci pokračovat. Proto nikdy nedosáhnete process.exit
na konci.
Na druhou stranu, pokud zavřete položky, které vyžadují, aby aplikace zůstala otevřená, můžete problém vyřešit u jeho zdroje.
Dvě „nedokumentované funkce“, které jsem mohl použít, byly
process._getActiveHandles();
process._getActiveRequests();
Nejsem si jistý, jaké další funkce pomohou s laděním těchto typů problémů, ale tyto byly úžasné.
Vracejí pole a pomocí těchto metod můžete hodně určit, co se děje ve vašem procesu.
Jen doufám, že to pomůže někomu dalšímu, aby narazil na tento příspěvek.