我有一些用例,处理可能需要长达 2 小时的时间。 因此,一旦用户从浏览器提交请求,我的理解是浏览器将继续等待响应到达。但是我在大约 15-20 分钟后收到错误页面。
我知道 Web 请求不应该花费太多时间,但我坚持使用现有的架构和设计。
有人可以提出解决这个问题的方法吗?
我正在使用IE 9作为浏览器。雄猫作为服务器。
对于类似的问题,您可以做的是在服务器上创建一个单独的线程,并向用户返回一个响应,说明作业已启动,然后
- 在特定页面上显示该作业的结果(这似乎是一个可接受的解决方案,用户可能不会在这么长的任务中留在屏幕前)
- 或者通过 Ajax 执行一些轮询以获得您刚刚触发的作业的状态。
服务器超时很可能是大约 15 分钟,因此您在 15 分钟后出现错误。一种解决方案是增加服务器超时。但是增加到 2 小时会太长。另一种选择是从浏览器轮询服务器以找出任务的状态。您可以使用 ajax 调用来实现此目的。