filter

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Jun 23, 2021 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Counter = NewCounterService()
View Source
var RequestLimit = NewRequestLimitService(10*time.Second, 5)

Functions

This section is empty.

Types

type CounterFilter

type CounterFilter struct {
	QPSCount
	CountAll int
	Lock     sync.Mutex
}

func NewCounterService

func NewCounterService() *CounterFilter

func (*CounterFilter) Increase

func (counter *CounterFilter) Increase()

type Filter

type Filter interface {
	FilterHttpRouter(pattern string, h httprouter.Handle) httprouter.Handle
	FilterHttpHandlerFunc(pattern string, handler func(http.ResponseWriter, *http.Request)) func(http.ResponseWriter, *http.Request)
}

type QPSCount

type QPSCount struct {
	Timestamp  int64
	QPS        int
	MaxHistory int
}

type RateLimitFilter

type RateLimitFilter struct {
	Interval time.Duration
	MaxCount int
	Lock     sync.Mutex
	ReqCount int
}

func NewRequestLimitService

func NewRequestLimitService(interval time.Duration, maxCnt int) *RateLimitFilter

func (RateLimitFilter) FilterHttpHandlerFunc

func (filter RateLimitFilter) FilterHttpHandlerFunc(pattern string, handler func(http.ResponseWriter, *http.Request)) func(http.ResponseWriter, *http.Request)

func (RateLimitFilter) FilterHttpRouter

func (filter RateLimitFilter) FilterHttpRouter(pattern string, h httprouter.Handle) httprouter.Handle

func (*RateLimitFilter) Increase

func (filter *RateLimitFilter) Increase()

func (*RateLimitFilter) IsAvailable

func (filter *RateLimitFilter) IsAvailable() bool

Jump to

Keyboard shortcuts

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