python令牌桶算法
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                python令牌桶算法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                import time
class TokenBucket(object):
    # rate是令牌發放速度,capacity是桶的大小
    def __init__(self, rate, capacity):
        self._rate = rate
        self._capacity = capacity
        self._current_amount = 0
        self._last_consume_time = int(time.time())
    # token_amount是發送數據需要的令牌數
    def consume(self, token_amount):
        increment = (int(time.time()) - self._last_consume_time) * self._rate  # 計算從上次發送到這次發送,新發放的令牌數量
        self._current_amount = min(
            increment + self._current_amount, self._capacity)  # 令牌數量不能超過桶的容量
        if token_amount > self._current_amount:  # 如果沒有足夠的令牌,則不能發送數據
            return False
        self._last_consume_time = int(time.time())
        self._current_amount -= token_amount
        return True
作者:simpleapples
鏈接:https://juejin.im/post/5ab10045518825557005db65
來源:掘金
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
總結
以上是生活随笔為你收集整理的python令牌桶算法的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: Java 线程池相关问题
- 下一篇: 使用百度大脑,导入aip以及相应的库文件
