limiter

package
v0.3.2 Latest Latest
Warning

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

Go to latest
Published: Jun 14, 2020 License: MPL-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func SetDefaultLimitsFromFile

func SetDefaultLimitsFromFile(limiter Limiter, defaultLimitsFile string, defaultNamespace string) error

SetDefaultLimitsFromFile will set some default limits into a Limiter.

Types

type Limiter

type Limiter interface {
	SetLimit(ctx context.Context, limit *psc.Limit) error
	SetLimits(ctx context.Context, limits []*psc.Limit) error
	GetLimit(ctx context.Context, limitID string) (*psc.Limit, error)
	GetLimits(ctx context.Context, limitIDs []string) ([]*psc.Limit, error)
	GetLimitsAll(ctx context.Context) ([]*psc.Limit, error)
	RemoveLimit(ctx context.Context, limitID string) error
	RemoveLimits(ctx context.Context, limitIDs []string) error
	RemoveLimitsAll(ctx context.Context) error
	PeekState(ctx context.Context, key string, limitIDs ...string) (*psc.StatesByKeysWithRequest, error)
	PeekStates(ctx context.Context, limitIDsByKey map[string][]string) (*psc.StatesByKeysWithRequest, error)
	CheckState(ctx context.Context, key string, limitIDs ...string) (*psc.StatesByKeysWithRequest, error)
	CheckStates(ctx context.Context, limitIDsByKey map[string][]string) (*psc.StatesByKeysWithRequest, error)
	FinishRequest(ctx context.Context, requestID string, resources map[string]int64) error
}

Limiter defines an interface for a Limiter client.

func NewRedisLimiterWithClient

func NewRedisLimiterWithClient(client prd.Client) Limiter

NewRedisLimiterWithClient will return a new Limiter with a specified client.

func NewRedisLimiterWithURL

func NewRedisLimiterWithURL(redisURL string) (Limiter, error)

NewRedisLimiterWithURL will create a new Limiter with the specified URL.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL
JackTT - Gopher 🇻🇳