我的node.js服务器中的其中一个AJAX请求有时会超过两分钟。我发现当服务器花费的时间超过两分钟时,客户端会重新发送AJAX请求。这导致服务器陷入更加困难的境地,因为它开始了第二个昂贵的进程。
为了解决这个问题,我在服务器上实现了长轮询解决方案。客户端对服务器上的检查函数进行ajax调用,该函数仅检查进程是否已完成,并每五秒重新检查一次,直到完成并返回给客户端。
然而,我仍然遇到了两分钟问题的变化。两分钟后又来了第二个检查AJAX调用。然后两个检查都在运行,似乎只有新的请求才会与客户端通信。
有什么最好的方法来解决这个问题呢?
更新:根据node.js文档,“所有传入连接的默认超时时间为2分钟”。我仍然对编写长时间运行的服务器请求的最佳实践建议感兴趣,其中客户端在服务器完成之前不需要知道任何信息。
为了解决这个问题,我在服务器上实现了长轮询解决方案。客户端对服务器上的检查函数进行ajax调用,该函数仅检查进程是否已完成,并每五秒重新检查一次,直到完成并返回给客户端。
然而,我仍然遇到了两分钟问题的变化。两分钟后又来了第二个检查AJAX调用。然后两个检查都在运行,似乎只有新的请求才会与客户端通信。
有什么最好的方法来解决这个问题呢?
- 是否有方法可以配置或禁用两分钟的ajax重新发送?
- 是否有更好的方式来管理对服务器的后续重复请求?
- 我需要在客户端上实现超时,而不是在服务器上吗?
更新:根据node.js文档,“所有传入连接的默认超时时间为2分钟”。我仍然对编写长时间运行的服务器请求的最佳实践建议感兴趣,其中客户端在服务器完成之前不需要知道任何信息。