gpt4 book ai didi

web-services - 如何使用 Restify 增加服务器端的套接字超时?

转载 作者:搜寻专家 更新时间:2023-11-01 00:18:52 25 4
gpt4 key购买 nike

我使用 restify 来实现 node.js 服务器。基本上,服务器为每个 HTTP POST 请求运行一个耗时的过程,但套接字以某种方式关闭并且客户端收到如下错误消息:

[Error: socket hang up] code: 'ECONNRESET'

根据错误类型,肯定是服务端关闭了socket。

我可以在 restify 的 createServer 方法中设置任何选项来解决这个问题吗?

编辑:长时间运行的进程使用 Mongoose 来运行 MongoDB 进程。也有可能是socket hangup是连接MongoDB导致的?如何增加 Mongoose 的超时时间?我发现挂断发生在恰好 120 秒内,所以这可能是因为某些默认超时配置?

提前致谢!

最佳答案

您可以使用标准 socketreq 对象上,手动调用 setTimeout增加 Node 挂断套接字之前的时间。默认情况下, Node 在所有套接字上都有一个 2 分钟的计时器用于不活动,这就是为什么你会在恰好 120 秒时挂断(这与 restify 无关)。作为增加它的一个例子,设置一个处理程序在你长时间运行的任务之前运行,如下所示:

server.use(function (req, res, next) {
// This will set the idle timer to 10 minutes
req.connection.setTimeout(600 * 1000);
res.connection.setTimeout(600 * 1000); //**Edited**
next();
});

关于web-services - 如何使用 Restify 增加服务器端的套接字超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15305068/

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