请求超时问题net::err_empty_response

Blade 未结 1 616
viplt
viplt 剑童 2022-02-10 13:05

一、该问题的重现步骤是什么?

1. 目前正在做ppt解析的功能,前端上传ppt到后台,上传文件大小3M左右

2. 但是在接口里读取完文件后,做逻辑处理时间会比较长,只要超过2分钟就前端就会提示net::err_empty_response,就算配置了timeout也没有用

const $http = axios.create({

  timeout: 60000

3.


二、你期待的结果是什么?实际看到的又是什么?

期待的结果是等待后台执行解析完成,前端正常显示


三、你正在使用的是什么产品,什么版本?在什么操作系统上?

开源版本

https://gitee.com/smallc/SpringBlade

在window系统上


四、请提供详细的错误堆栈信息,这很重要。

net::err_empty_response


五、若有更多详细信息,请在下面提供。


1条回答
  • 2022-02-15 01:14

    调用超过两分钟的接口等待数据返回,其实一般被认定为设计不合理了。

    遇到这种情况,推荐一个思路,你可以进行分段操作:

     1. 你执行上传之后,前端js创建一个定时器,每隔一秒(间隔自己定)轮询请求对应的新接口。

     2. 后端在处理结束后,根据业务id,把数据保存在redis,并结束业务。

     3. 前端定时器请求新接口,根据业务id去redis查询是否处理完毕,如果完毕则查询缓存进行返回,前端处理完毕就清理定时器与redis缓存。

    0 讨论(0)
提交回复