tokenbucket

package
v1.1.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 18, 2024 License: MIT Imports: 2 Imported by: 0

Documentation

Index

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) Capacity

func (tb *TokenBucket) Capacity() int64

Capacity 返回桶的容量

func (*TokenBucket) FillInterval

func (tb *TokenBucket) FillInterval() time.Duration

FillInterval 返回填充桶的时间间隔

func (*TokenBucket) LastTokenTime

func (tb *TokenBucket) LastTokenTime() time.Time

LastTokenTime 返回上次填充桶的时间

func (*TokenBucket) Reset

func (tb *TokenBucket) Reset()

Reset 重置桶,清空桶中的令牌

func (*TokenBucket) Take

func (tb *TokenBucket) Take()

Take 从桶中取出一个令牌,如果桶中没有令牌,则阻塞直到桶中有令牌

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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL