Остановка (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 из его компонента?