本章教程,主要介绍若依前后端分离版本如何设置接口的超时时间的方法。
接口超时指的是当一个应用程序或者服务请求另一个应用程序或者服务时,如果在一定时间内没有得到响应,就会发生超时。超时通常是由于网络延迟、服务器性能问题或者应用程序错误导致的。在实际应用中,超时问题可能会导致应用程序崩溃或者无法正常工作,因此需要对超时进行有效的处理和管理。通常的处理方式包括设置超时时间、重试机制、异常处理等。
1、设置全局超时时间
2、针对某个接口单独设置超时时间
3、针对下载接口单独设置超时时间
1、
设置全局超时时间
修改文件位置:src/utils/request.js
const service = axios.create({
baseURL: process.env.VUE_APP_BASE_API,
// 默认超时时间为10秒,可以自己定义默认的全局 timeout
timeout
expireTime: 120 # 将 Token 有效期
设置
为 2 小时。// axios中请求配置有baseURL选项,表示请求URL公共部分。# 令牌有效期(默认30分钟)
2. socketTimeOut:指客户端和服务进行数据交互的
时间
,是指两者之间如果两个数据包之间的
时间
大于该
时间
则认为
超时
,而不是整个交互的整体
时间
,比如如果
设置
1秒
超时
,如果每隔0.8秒传输一次数据,传输10次,总共8秒,这样是不
超时
的。而如果任意两个数据包之间的
时间
超过了1秒,则
超时
。注:ruoyi是使用解析类进行参数配置的,如果直接在yml中增加配置是不起作用的。起因:数据库查询过慢,导致框架默认超过了默认
时间
,从而导致当前会话自动断开。
解决方案:
6,required URL template variable 'name' for method parameter type String is not present...
7,net::ERR_CONNECTION_TIMED_OUT
8,提交时调用的方法名写错
这时1000个请求过来,去请求该API
接口
,这样会导致tomcat线程池很快被占满,导致整个服务暂时不可用,至少新的请求过来,是没法即使响应的。如果用户请求量突然增多,超出了1秒10M的上限,比如:1秒100M,而服务器带宽本身1秒就只能传输10M,这样会导致在这1秒内,90M数据就会延迟传输的情况,从而导致
接口
超时
的发生。所以第三方这种根据日期查询增量数据的
接口
,建议做成分页查询的,不然后面没准哪一天,遇到批量更新的操作,就可能出现
接口
超时
的问题。有时候传入参数1,sql语句走了索引a,执行
时间
很快。
ruoyi-ui/src/utils路径下的request.js文件中设定的默认
超时
时间
是10000ms,临时修改为600000,重新访问即可。
若依
前后端访问自定义
接口
时,页面加载一直出不来,报timeout of 10000ms exceeded 错误。前端操作后,看后端的查询
时间
及
接口
记录,发现执行SQL语句成功,数据查询成功,但是查询记录耗时有25761ms。定位到数据量比较大,耗时比较长,10000ms的
超时
时间
不够。