繁体   English   中英

Node.js请求在收到响应之前就被丢弃

[英]Node.js Request drops before Response is received

我正在处理的项目是接收一个请求,该请求的主要和/或大部分包含来自数据库的数据。 接收后,我的系统继续执行其功能,即解析所有数据并最终将所需的信息连接起来以形成查询,然后使用提及的查询将这些数据插入我的本地数据库。

它工作正常,完全没有问题。 除了请求超过6,000,000个字符和200,000行(或更少,但仍然有大量数字)时处理时间太长的事实。

我已经在将我的系统用作服务器(生产中的假定设置)以及Postman的情况下进行了此测试,但是在建立和发送最终响应之前,两者都会断开连接。 我已经测试过,尽管连接断开了,但我的系统仍然继续处理数据,直到查询为止,甚至直到发送假定的响应为止。 但是由于请求在处理过程中的某个地方掉了,所以响应被忽略了。

这是关于nodejs中的连接超时吗? 还是在'app.use(bodyParser.json({limit:'10mb'})))'中进行限制?

我真的只看到一种解决方法。 我过去也做过类似的事情。 允许客户端发送您需要/想要的数量。 但是,与其尝试让客户端等待一些不确定的时间(此时客户端可能会超时),不如发送一个立即响应,基本上是“我们已收到您的请求,我们正在处理它”。

现在不是那么重要的部分,但这是我解决此类问题的唯一方法。 在您的“处理中”响应中,发送回某种ID。 现在,客户端可以不时地通过向您发送该ID来检查其请求是否已经完成。 在服务器端,您通过为其提供的ID存储客户端的结果。 您必须对诸如响应ID保留多长时间以及是否可以多次请求之类的事情做出一些决定。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM