gpt4 book ai didi

node.js - Nest.js 优雅关闭

转载 作者:行者123 更新时间:2023-12-04 14:14:24 51 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How to trigger application shutdown from a service in Nest.js?

(1 个回答)


6 个月前关闭。




我在引导函数中启用了关闭 Hook 。我还订阅了我的模块之一的应用程序关闭 Hook :

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 应用程序关闭?

最佳答案

我相信您的问题可能是您的 NestJS 实例没有监听关闭事件。您需要使用 app.enableShutdownHooks() 启用该行为在你的 bootstrap 中。
这是来自他们的 Lifecycles Events指导:

async function bootstrap() {
const app = await NestFactory.create(AppModule);

// Starts listening for shutdown hooks
app.enableShutdownHooks();

await app.listen(3000);
}

关于node.js - Nest.js 优雅关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61892684/

51 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com