【问题标题】:Ajax request multiple retries in NodeJS for a time consuming requestAjax 请求在 NodeJS 中多次重试一个耗时的请求
【发布时间】:2016-08-29 17:48:02
【问题描述】:

我正在使用 ExpressJS 框架并使用 jQuery 向服务器发送 ajax 请求。这个ajax请求,对大量的item一个一个地向服务器上的API发送请求,并且需要足够长的时间(100个item大约需要10分钟)。

问题在于,当服务器与 API 通信并处理了 30 个项目时,浏览器再次发送相同的 ajax 请求(正在等待来自服务器的响应)。这导致在服务器上处理多个 ajax 请求。解决办法是什么?

【问题讨论】:

  • 不清楚你在问什么。如果您想让 forlks 尝试帮助您解决问题,请出示您的代码。
  • @Paul 代码很大。问题很笼统。我发送一个ajax请求。服务器需要很长时间才能完成请求。但是,浏览器不是仅仅等待响应,而是在一段时间后再次发送 ajax 请求,例如2分钟后。现在,服务器同时处理 2 个请求。
  • 好的,祝你好运。

标签: javascript ajax node.js express


【解决方案1】:

我通过在/bin/www 文件中设置server.timeout 解决了我的问题。正如我所提到的,我使用的是 NodeJS 的 Express 框架,如果我将 server.timeout 设置为一个值,比如 30 分钟,那么浏览器会继续等待 ajax 响应 30 分钟并且不会发送新请求。这是我在www 文件中添加超时值的地方:

var server = app.listen(app.get('port'), function() {
  debug('Express server listening on port ' + server.address().port);
  console.log('Express server listening on port ' + server.address().port + ' in '+process.env.NODE_ENV+' mode.');
});
server.timeout = 30*60*1000; // for 30 minutes

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-04
    • 2012-05-28
    相关资源
    最近更新 更多