场景:当某个接口提供第三方获取数据时候,如果第三方平台通过线程去轮询调用该接口,则会造成接口的压力过大,并且会对数据库的连接数造成负担,因此限制接口调用次数是有必要的。
解决方式:1.将调用的 用户id+调用表名存储 作为redis的key值 并设定过期时间60s(可按照自己的实际业务情况而定)
2.判断上一次的请求是否返回结果集,如果没有返回结果集则返回错误信息(如果上一次调用的时间超过了60s,而sql的执行时间为60s+,那么这里的判断是否返回结果集就起到了作用,因为如果没有第一次的请求还在执行sql,第二次的求情又进来,如果不加是否返回结果集的判断,则会一直占用数据库连接数,越来越多请求进来后,从而导致数据库连接数爆掉)