如何优化漏斗限制的呼叫率?

时间:2016-09-22 19:55:51

标签: python

我通过他们的API使用Python连接到Web服务。它们具有泄漏的桶节流,最大突发40个呼叫,恢复速率为2个呼叫/秒。我知道我可以每0.5秒发出一次请求并且从未达到限制但是如果我需要拨打一千个电话,我不会在实际通话的延迟时间内浪费时间。在足够的呼叫之后,这将累积大量时间。

所以,如果我想在我需要做的数千次通话中尽可能少地浪费时间,我可以做这样的事情:

import requests
from datetime import datetime

time1 = datetime.now()
count = 0
for url in api_urls:
    api_resp = requests.get(url)
    count += 1

    if count == 40:
        time2 = datetime.now()
        time.sleep(20-(time2-time1)) # 20s total time to restore 40 calls
        count = 0                    #   minus the time it took to
        time1 = datetime.now()       #   get to 40 total calls

恢复率是否适用于拨打40个电话所需的时间?如果是这样的话,我不需要等待整整20秒再做40次爆发,因为它实际上需要一些时间来进行前40次呼叫吗?

爆发40次通话所需的时间是如此微不足道,以至于无关紧要?

提前致谢。

0 个答案:

没有答案