limiter

package
v0.64.0 Latest Latest
Warning

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

Go to latest
Published: May 27, 2026 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type SlidingWindowLimiter added in v0.58.0

type SlidingWindowLimiter struct {
	// contains filtered or unexported fields
}

func NewSlidingWindowLimiter added in v0.58.0

func NewSlidingWindowLimiter(frequency_hz, buckets_count int) (*SlidingWindowLimiter, error)

func (*SlidingWindowLimiter) Close added in v0.58.0

func (sw *SlidingWindowLimiter) Close()

func (*SlidingWindowLimiter) TryGrant added in v0.58.0

func (sw *SlidingWindowLimiter) TryGrant() (bool, error)

TryGrant 非阻塞,直接在当前 goroutine 执行

type StaticLimiter

type StaticLimiter struct {
	// contains filtered or unexported fields
}

func NewStaticLimiter

func NewStaticLimiter(interval time.Duration) *StaticLimiter

func (*StaticLimiter) GrantNextToken

func (l *StaticLimiter) GrantNextToken()

func (*StaticLimiter) Reset

func (l *StaticLimiter) Reset(interval time.Duration)

func (*StaticLimiter) Stop

func (l *StaticLimiter) Stop()

type TokenBucket added in v0.56.0

type TokenBucket struct {
	// contains filtered or unexported fields
}

func NewTokenBucket added in v0.56.0

func NewTokenBucket(capacity int, interval time.Duration) *TokenBucket

NewTokenBucket 创建令牌桶限流器 capacity: 桶容量(最大令牌数) interval: 令牌生成時間interval(令牌/秒)

func (*TokenBucket) Close added in v0.56.0

func (tb *TokenBucket) Close()

func (*TokenBucket) Grant added in v0.56.0

func (tb *TokenBucket) Grant(ctx context.Context) error

func (*TokenBucket) TryGrant added in v0.56.0

func (tb *TokenBucket) TryGrant() (bool, error)

Jump to

Keyboard shortcuts

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