Documentation
¶
Index ¶
- type TokenBucket
- func (tb *TokenBucket) AvailableTokens() int64
- func (tb *TokenBucket) Capacity() int64
- func (tb *TokenBucket) FillInterval() time.Duration
- func (tb *TokenBucket) LastTokenTime() time.Time
- func (tb *TokenBucket) Reset()
- func (tb *TokenBucket) Take()
- func (tb *TokenBucket) TakeNum(num int64) int64
- func (tb *TokenBucket) TryTake() bool
- func (tb *TokenBucket) TryTakeNum(num int64) bool
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type TokenBucket ¶
type TokenBucket struct {
// contains filtered or unexported fields
}
func NewTokenBucket ¶
func NewTokenBucket(capacity int64, fillInterval time.Duration) *TokenBucket
NewTokenBucket 创建一个令牌桶,桶内自带锁,协程安全。capacity为桶的容量,fillInterval为每次填充桶的时间间隔
func (*TokenBucket) AvailableTokens ¶
func (tb *TokenBucket) AvailableTokens() int64
AvailableTokens 返回桶中可用的令牌数量
func (*TokenBucket) FillInterval ¶
func (tb *TokenBucket) FillInterval() time.Duration
FillInterval 返回填充桶的时间间隔
func (*TokenBucket) LastTokenTime ¶
func (tb *TokenBucket) LastTokenTime() time.Time
LastTokenTime 返回上次填充桶的时间
func (*TokenBucket) TakeNum ¶
func (tb *TokenBucket) TakeNum(num int64) int64
TakeNum 从桶中取出num个令牌,如果桶中没有足够的令牌,则阻塞直到桶中有足够的令牌,若获取的令牌数大于桶的容量,则获取桶的容量个令牌。返回实际获取的令牌数
func (*TokenBucket) TryTake ¶
func (tb *TokenBucket) TryTake() bool
TryTake 从桶中取出一个令牌,如果桶中没有令牌,则返回false
func (*TokenBucket) TryTakeNum ¶
func (tb *TokenBucket) TryTakeNum(num int64) bool
TryTakeNum 从桶中取出num个令牌,如果桶中没有足够的令牌,则返回false
Click to show internal directories.
Click to hide internal directories.