Событие процесса не запускается в приложении Node - PullRequest
0 голосов
/ 09 января 2020

У меня есть приложение узла, которое подключается к БД MS SQL при запуске и сохраняет соединения открытыми, пока приложение не будет уничтожено. При остановке приложения оно закрывает соединение перед выключением. Однако я также хочу добавить некоторые отказоустойчивые механизмы для закрытия соединений в случае внезапного выключения, перезапуска или любого другого непредвиденного события. Я пытаюсь достичь этого, обрабатывая сигналы SIGINT, SIGABRT, SIGTERM и SIGKILL. Я написал функцию, которая закрывает соединения БД при вызове, и вызываю ее в следующем сценарии ios -

 process.on('exit',  closeConnections);
 process.on('SIGINT', closeConnections);
 process.on('SIGABRT', closeConnections);
 process.on('SIGTERM', closeConnections);
 process.on('SIGKILL', closeConnections);

К сожалению, сейчас происходит то, что если я остановлю приложение узла с помощью ^ C тогда process.on('exit', closeConnections); сработает. Но если я завершаю процесс из диспетчера задач или если я запускаю приложение через pm2 или nodemon и перезапускаю приложение там, ни одно из них не запускается, и оно просто перезапускается просто. Сейчас я пробую это на Windows, но я бы хотел, чтобы это работало и на Linux ОС.

Может кто-нибудь помочь мне решить эту проблему и помочь мне понять, что я делаю неправильно, что это не работает ?

Вся помощь очень ценится!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...