limiter

package
v0.0.0-...-fff2389 Latest Latest
Warning

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

Go to latest
Published: Aug 4, 2023 License: MIT Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type GBRateLimitSet

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

func GBNewRateLimitSet

func GBNewRateLimitSet(name interface{}, checkIntervals int) *GBRateLimitSet

创建周期速率限制对象

@param name 对象名称 @param checkIntervals 周期间隔(秒数),检测周期越长,内存压力越大,GC 压力越小

@return 新对象

func (*GBRateLimitSet) CheckIsLimited

func (obj *GBRateLimitSet) CheckIsLimited(key interface{}, intervals, limit, consume int) bool

周期性速率限制检测,是否被限制

@param key 目标 @param intervals 周期间隔(秒数) @param limit 每周期最大额度 @param consume 本次消费额度,可以传"0"表示不消费

@return true:被限制,false:未被限制,当实际消费额度大于"0"时,一定会返回"false"

func (*GBRateLimitSet) CheckLimit

func (obj *GBRateLimitSet) CheckLimit(key interface{}, intervals, limit, consume int) (bool, int, int)

周期性速率限制检测

@param key 目标 @param intervals 周期间隔(秒数) @param limit 每周期最大额度 @param consume 本次消费额度,可以传"0"表示不消费

@return true:被限制,false:未被限制,当实际消费额度大于"0"时,一定会返回"false" @return 本次实际消费额度 @return 本周期剩余额度

func (*GBRateLimitSet) GetLeft

func (obj *GBRateLimitSet) GetLeft(key interface{}, intervals, limit int) int

取得当前周期剩余额度

@param intervals 周期间隔(秒数) @param limit 每周期最大额度

@return 剩余额度数量,可能是负数

func (*GBRateLimitSet) IsLimited

func (obj *GBRateLimitSet) IsLimited(key interface{}, intervals, limit int) bool

周期性速率限制检测,是否被限制

@param key 目标 @param intervals 周期间隔(秒数) @param limit 每周期最大额度

@return true:被限制,false:未被限制

func (*GBRateLimitSet) Name

func (obj *GBRateLimitSet) Name() interface{}

取得名称

type GBRateLimiter

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

func GBNewRateLimiter

func GBNewRateLimiter() *GBRateLimiter

分配新对象

func (*GBRateLimiter) CheckIsLimited

func (obj *GBRateLimiter) CheckIsLimited(intervals, limit, consume int) bool

速率限制检测消费,是否被限制

@param intervals 周期间隔(秒数) @param limit 每周期最大额度 @param consume 本次消费额度,可以传"0"表示不消费

@return true:被限制,false:未被限制,当实际消费额度大于"0"时,一定会返回"false"

func (*GBRateLimiter) CheckLimit

func (obj *GBRateLimiter) CheckLimit(intervals, limit, consume int) (bool, int, int)

速率限制检测消费

@param intervals 周期间隔(秒数) @param limit 每周期最大额度 @param consume 本次消费额度,可以传"0"表示不消费

@return true:被限制,false:未被限制,当实际消费额度大于"0"时,一定会返回"false" @return 本次实际消费额度 @return 本周期剩余额度

func (*GBRateLimiter) Expired

func (obj *GBRateLimiter) Expired() bool

是否过期

func (*GBRateLimiter) GetLeft

func (obj *GBRateLimiter) GetLeft(intervals, limit int) int

取得剩余额度

@param intervals 周期间隔(秒数) @param limit 每周期最大额度

@return 剩余额度数量,可能是负数

func (*GBRateLimiter) IsLimited

func (obj *GBRateLimiter) IsLimited(intervals, limit int) bool

速率限制检测,是否被限制

@param intervals 周期间隔(秒数) @param limit 每周期最大额度

@return true:被限制,false:未被限制

func (*GBRateLimiter) Reset

func (obj *GBRateLimiter) Reset(intervals int)

重置对象

Jump to

Keyboard shortcuts

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