Остановка (gracefully shutdown) приложений на Nest.js

Я активировал хуки в моей функции bootstrap. Так же я подписался на интересующий меня хук в одном из модулей:

public async onApplicationShutdown(signal): Promise<void>
{
   console.log({signal});
   ...
}

Теперь если я нажму Ctrl+C то увижу в консоли сообщение с сигналом выхода, и мои ресурсы корректно освободятся.

Я хочу корректно закрыть приложение, если при старте не удалось подключиться к базе данных:

export class MyDbAccessImplementation {
   constructor() {
      this._pool = createPool(some);
      this._pool.query(`SELECT 'test' AS TEST`, (err) => {
         if (err !== null) {
            console.error(err);
            process.emit('SIGINT');
         }
      });
   }
}

Однако в данном случае при ошибке подключения метод onApplicationShutdown не вызывается, а приложение закрывается сразу.

Каким образом стриггерить корректную остановку приложения Nest.js из его компонента?


Ответы (0 шт):