sql >> Databáze >  >> RDS >> Mysql

můj skript nodejs se po úspěšném provedení sám neukončí

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.



  1. Postgres omezení pro jedinečný rozsah data a času

  2. Automaticky zabíjet dlouho běžící dotazy (MySql), Apache Tomcat DataSource

  3. Vyberte příkaz, chcete-li najít duplikáty v určitých polích

  4. PHP MySQL - pro každých 6 řádků vložit div?