首页 > 试题广场 >

设计qps (query per sec)函数,用它控制ap

[问答题]
设计qps (query per sec)函数,用它控制api调用,使得api n毫秒内只能被调用m次?
下面是一个思路,可以使用数组维护一个循环的队列,队列长度是m,队列存放访问的时间戳,如果队尾没有追上对头,直接把该次访问的时间戳入队,可以访问,如果追上了,判断队尾和队头的时间差,如果超过n毫秒,直接入队,更新队尾和队头指针,可以访问,如果小于n毫秒,拒绝访问
os:如果m很大,比如100000,可以设置一个计数器,计数器达到一定次数(比如1000)才入队一个元素
发表于 2021-11-04 21:57:37 回复(0)
设计合理即可,下面是一个参考思路:
• 维护一个窗口,窗口有左右两个边界;窗口内为从最后一次访问开始向前n毫秒所有的访问?
• 当新来一个访问,更新窗口右边界,打新的时间戳;向右移动窗口左边界,将距当前n毫秒外的访 问删除
• 统计次数看是否满足<= m次?
发表于 2015-05-05 14:54:39 回复(0)