gpt4 book ai didi

node.js - 当请求超时时,如何停止 Express 中的进程?

转载 作者:太空宇宙 更新时间:2023-11-03 22:20:09 25 4
gpt4 key购买 nike

请求超时时如何停止 Express 中的进程?

安装“连接超时”
从“connect-timeout”导入超时;

// halt_on_timeout.js

module.exports = function haltOnTimedout(req, res, next) {
if (!req.timedout) next();
};

昂贵的过程需要超过 30 秒路线超时,但 expense_long_operation 永远不会停止运行..

route.post(
'upload_alot_of_content/'
timeout('30s'),
haltOnTimedout,
async (req, res) => {
const result = await expensive_long_operation();
if (req.timedout) {
next('error!')
}
res({....})
})

最佳答案

在 Node.js 中无法任意停止异步进程,但是您可以实现几个选项来实现您想要的目的。

  1. 您可以在 fork 的 Nodejs 进程中运行昂贵的_long_操作,然后在超时时终止该进程。
  2. 您可以将昂贵的_long_操作编写为异步 C++ 模块,并构建一种允许您中断操作的机制。

关于node.js - 当请求超时时,如何停止 Express 中的进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57681046/

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