Documentation
¶
Index ¶
Constants ¶
View Source
const ( DEFAULT_PRIORITY_MULTIPLIER = uint16(2) PUBLISH_PRIORITY_MULTIPLIER = uint16(4) DEFAULT_RATE_PER_MINUTE = uint16(4000) DEFAULT_MAX_TOKENS = uint16(20000) PUBLISH_RATE_PER_MINUTE = uint16(600) PUBLISH_MAX_TOKENS = uint16(3000) MAX_UINT_16 = 65535 DEFAULT LimitType = "DEF" PUBLISH LimitType = "PUB" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Entry ¶
type Entry struct {
// contains filtered or unexported fields
}
Entry represents a single wallet entry in the rate limiter
type Limit ¶
type Limit struct {
// Maximum number of tokens that can be accumulated
MaxTokens uint16
// Number of tokens to refill per minute
RatePerMinute uint16
}
Limit controls token refilling for bucket entries
type RateLimiter ¶
type TokenBucketRateLimiter ¶
type TokenBucketRateLimiter struct {
PriorityMultiplier uint16
PublishPriorityMultiplier uint16
Limits map[LimitType]*Limit
// contains filtered or unexported fields
}
TokenBucketRateLimiter implements the RateLimiter interface
func NewTokenBucketRateLimiter ¶
func NewTokenBucketRateLimiter(ctx context.Context, log *zap.Logger) *TokenBucketRateLimiter
func (*TokenBucketRateLimiter) Janitor ¶
func (rl *TokenBucketRateLimiter) Janitor(sweepInterval, expiresAfter time.Duration)
Click to show internal directories.
Click to hide internal directories.