throttle

package
v1.3.1 Latest Latest
Warning

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

Go to latest
Published: Apr 9, 2020 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type MemoryRateLimiter

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

基于内存存储的限速器

func NewMemoryRateLimiter

func NewMemoryRateLimiter(qps int) *MemoryRateLimiter

创建限速器 qps: 每秒最大请求数

func (*MemoryRateLimiter) Acquire

func (rl *MemoryRateLimiter) Acquire()

获取token, 如果没有则block

func (*MemoryRateLimiter) String

func (rl *MemoryRateLimiter) String() string

func (*MemoryRateLimiter) TryAcquire

func (rl *MemoryRateLimiter) TryAcquire() bool

获取token, 成功返回true, 没有则返回false

type RateLimiter

type RateLimiter interface {
	Acquire()
	TryAcquire() bool
}

type RedisRateLimiter

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

func NewRedisRateLimiter

func NewRedisRateLimiter(client *redis.RedisClient, luaPath string, qps int, serviceId string) (*RedisRateLimiter, error)

func (*RedisRateLimiter) Acquire

func (rrl *RedisRateLimiter) Acquire()

func (*RedisRateLimiter) TryAcquire

func (rrl *RedisRateLimiter) TryAcquire() bool

Jump to

Keyboard shortcuts

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