这个标题有点绕口,问题是这样的,比如一个小时,按秒计算有3600秒。如果这1个小时有36次请求,那么就是1次请求/100秒,如果是360次请求,那么就是1次请求/10秒。ok,如果是上面这样还挺好算,那在这个时间段里如何“均匀”划分31次请求,487次请求,7520次请求呢?你先想会,不过要注意哦:不能有小数哦,必须是整数,因为实际情况就是以秒为单位来发起请求的哦。你可别向上、或向下舍入哦,比如:3600秒有19次请求,那么就是1次请求/189.47秒,向上舍入1次请求/190秒,1个小时是发不完19次的哦;向下舍入1次请求/188秒,那么后面将会空余出28秒哦,这样就“不均分”了那如何实现呢?你思考思考后再看看我下面的答案,这个答案也是来自网友的帮助,也许不是最简单的,如果你有更好的方法,希望你能告诉我。把累积的小数误差体现在后面的计算中即可消灭最后的累积误差。也就是说每次使用“剩余时间”和“剩余次数”而非“总时间”和“总次数”来计算,这样每次向下取整,剩余时间就会变多一些,后面就更倾向于向上取整一些,反之亦然。误差会在不超过正负1的区间内摇摆而不会累积def scheduleRequest(reqCount, time = 3600):
result = []
remainTime = time
for i in xrange(0, reqCount
...
继续阅读
(22)