【发布时间】:2011-12-15 03:07:28
【问题描述】:
对我的 node.js 服务器的 AJAX 请求之一有时可能需要超过两分钟。我发现当服务器花费的时间超过两分钟时,客户端会重新发送 AJAX 请求。这导致服务器更加陷入困境,因为它启动了第二个昂贵的进程。
为了解决这个问题,我在服务器上实现了一个长轮询解决方案。客户端对服务器上的检查函数进行 ajax 调用,该函数仅检查进程是否完成并每五秒重新检查一次,完成后返回客户端。
但是,我仍然有两分钟问题的变体。两分钟后,第二次检查 AJAX 仍然调用。然后两个检查都在运行,似乎只有新的检查会与客户端通信。
解决这个问题的最佳方法是什么?
- 有没有办法配置或禁用两分钟 ajax 重发?
- 有没有更好的方法来管理对服务器的后续重复请求?
- 我需要在客户端而不是服务器上实现超时吗?
我正在使用 jQuery AJAX 调用,Chrome 浏览器上的 node.js 服务器
更新:来自node.js docs,“所有传入连接的默认超时时间为 2 分钟”。我仍然对有关编写长时间运行的服务器请求的最佳实践的建议感兴趣,其中客户端在服务器完成之前不需要知道任何内容。
【问题讨论】:
标签: ajax jquery node.js long-polling