Mysql
 sql >> Baza danych >  >> RDS >> Mysql

mój skrypt nodejs nie kończy pracy sam po pomyślnym wykonaniu

Właśnie przejrzałem ten problem.

Problem z samym użyciem process.exit() jest to, że program, nad którym pracuję, tworzył uchwyty, ale nigdy ich nie niszczył.

Przetwarzał katalog i umieszczał dane w orientdb .

więc niektóre z rzeczy, których się nauczyłem, to to, że połączenia z bazą danych muszą zostać zamknięte przed pozbyciem się odniesienia. I ten process.exit() nie rozwiązuje wszystkich spraw.

Kiedy mój projekt przetworzył 2000 plików. Zmniejszyłoby się do około 500 pozostałych, a dodatkowe uchwyty wypełniłyby dostępną pamięć roboczą. Co oznacza, że ​​nie będzie w stanie kontynuować. Dlatego nigdy nie docierasz do process.exit na końcu.

Z drugiej strony, jeśli zamkniesz elementy, które żądają, aby aplikacja pozostała otwarta, możesz rozwiązać problem u jego źródła.

Dwie „nieudokumentowane funkcje”, z których mogłem korzystać, to

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

Nie jestem pewien, jakie inne funkcje pomogą w debugowaniu tego typu problemów, ale te były niesamowite.

Zwracają one tablicę i za pomocą tych metod możesz określić, co dzieje się w Twoim procesie.

Mam tylko nadzieję, że pomoże to każdemu, kto natknie się na ten post.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Eliminacja podziału mózgu MySQL w bazach danych w wielu chmurach

  2. Jak wstawić wiele wartości pól wyboru do tabeli?

  3. Korzystanie z Oracle JDeveloper z MySQL Database Service na Oracle Cloud Platform, część 1

  4. Konwertuj javascript na obiekt daty na format daty mysql (RRRR-MM-DD)

  5. Jaka jest różnica między partycją upuszczaną mysql a partycją obcinaną?