这里maxCount并不生效
来源:11-3 如何对接口限流,避免无限制请求(开发egg-interfaceLimit插件)

骑猪跑的程序员
2020-11-13
只要在限定时间内,可以无限次进行请求。只是在到时间了才进行判断。
比如设置time=3000, maxCount=10。但是在3秒内是可以发起超过10次请求的,所以maxCount是不生效的.
写回答
1回答
-
夏小宅
2020-11-14
之前是按照“超过3秒,计数器大于3,则提示请求频繁”这个逻辑处理的;如果期望期望“在3秒内,计数器大于3,则提示请求频繁”,可以参考如下的代码
if(new Date().getTime() - firstTime < options.time ){ if(count >= options.maxCount){ count = 0; firstTime = new Date().getTime(); ctx.body = { status: 500, errMsg: '请求太频繁' }; return; }else { count++; await next(); } }else { count = 0; firstTime = new Date().getTime(); await next(); }
112021-11-30
相似问题