Node.js js优雅地关闭
我在引导功能中启用了关机挂钩。我还在我的一个模块上订阅了应用程序关闭挂钩:Node.js js优雅地关闭,node.js,nestjs,Node.js,Nestjs,我在引导功能中启用了关机挂钩。我还在我的一个模块上订阅了应用程序关闭挂钩: public async onApplicationShutdown(signal): Promise<void> { console.log({signal}); ... } 但在这种情况下,我的OnApplicationShutton方法不会在数据库连接错误时触发,应用程序会立即关闭 如何从其组件触发Nest.js应用程序关闭?我相信您的问题可能是您的NestJS实例没有侦听关闭事件。您需要
public async onApplicationShutdown(signal): Promise<void>
{
console.log({signal});
...
}
但在这种情况下,我的OnApplicationShutton方法不会在数据库连接错误时触发,应用程序会立即关闭
如何从其组件触发Nest.js应用程序关闭?我相信您的问题可能是您的NestJS实例没有侦听关闭事件。您需要使用引导程序中的
app.enableShutdownHooks()
启用该行为
这是他们的指南:
异步函数引导(){
const app=wait NestFactory.create(AppModule);
//开始侦听关闭挂钩
app.enableShutdownHooks();
等待应用程序。聆听(3000);
}
你试过lightship吗?-@pravindot17非常有趣的软件包。非常感谢。我会学的。但是我试图找到一个内置的nest.js解决方案,您的数据库使用什么?最近,我发现Prisma劫持了关机信号,并在nestjs钩子启动之前终止了进程。
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');
}
});
}
}