Documentation ¶
Overview ¶
Package quotas is a generated GoMock package.
Index ¶
- Constants
- type BurstFn
- type DynamicBurst
- type DynamicBurstImpl
- type DynamicRate
- type DynamicRateImpl
- type DynamicRateLimiterImpl
- func (d *DynamicRateLimiterImpl) Allow() bool
- func (d *DynamicRateLimiterImpl) AllowN(now time.Time, numToken int) bool
- func (d *DynamicRateLimiterImpl) Burst() int
- func (d *DynamicRateLimiterImpl) Rate() float64
- func (d *DynamicRateLimiterImpl) Reserve() Reservation
- func (d *DynamicRateLimiterImpl) ReserveN(now time.Time, numToken int) Reservation
- func (d *DynamicRateLimiterImpl) Wait(ctx context.Context) error
- func (d *DynamicRateLimiterImpl) WaitN(ctx context.Context, numToken int) error
- type MockRateLimiter
- func (m *MockRateLimiter) Allow() bool
- func (m *MockRateLimiter) AllowN(now time.Time, numToken int) bool
- func (m *MockRateLimiter) Burst() int
- func (m *MockRateLimiter) EXPECT() *MockRateLimiterMockRecorder
- func (m *MockRateLimiter) Rate() float64
- func (m *MockRateLimiter) Reserve() Reservation
- func (m *MockRateLimiter) ReserveN(now time.Time, numToken int) Reservation
- func (m *MockRateLimiter) Wait(ctx context.Context) error
- func (m *MockRateLimiter) WaitN(ctx context.Context, numToken int) error
- type MockRateLimiterMockRecorder
- func (mr *MockRateLimiterMockRecorder) Allow() *gomock.Call
- func (mr *MockRateLimiterMockRecorder) AllowN(now, numToken interface{}) *gomock.Call
- func (mr *MockRateLimiterMockRecorder) Burst() *gomock.Call
- func (mr *MockRateLimiterMockRecorder) Rate() *gomock.Call
- func (mr *MockRateLimiterMockRecorder) Reserve() *gomock.Call
- func (mr *MockRateLimiterMockRecorder) ReserveN(now, numToken interface{}) *gomock.Call
- func (mr *MockRateLimiterMockRecorder) Wait(ctx interface{}) *gomock.Call
- func (mr *MockRateLimiterMockRecorder) WaitN(ctx, numToken interface{}) *gomock.Call
- type MockReservation
- type MockReservationMockRecorder
- func (mr *MockReservationMockRecorder) Cancel() *gomock.Call
- func (mr *MockReservationMockRecorder) CancelAt(now interface{}) *gomock.Call
- func (mr *MockReservationMockRecorder) Delay() *gomock.Call
- func (mr *MockReservationMockRecorder) DelayFrom(now interface{}) *gomock.Call
- func (mr *MockReservationMockRecorder) OK() *gomock.Call
- type MultiStageRateLimiterImpl
- func (rl *MultiStageRateLimiterImpl) Allow() bool
- func (rl *MultiStageRateLimiterImpl) AllowN(now time.Time, numToken int) bool
- func (rl *MultiStageRateLimiterImpl) Burst() int
- func (rl *MultiStageRateLimiterImpl) Rate() float64
- func (rl *MultiStageRateLimiterImpl) Reserve() Reservation
- func (rl *MultiStageRateLimiterImpl) ReserveN(now time.Time, numToken int) Reservation
- func (rl *MultiStageRateLimiterImpl) Wait(ctx context.Context) error
- func (rl *MultiStageRateLimiterImpl) WaitN(ctx context.Context, numToken int) error
- type MultiStageReservationImpl
- type NamespaceMultiStageRateLimiterImpl
- func (r *NamespaceMultiStageRateLimiterImpl) Allow(namespaceID string) bool
- func (r *NamespaceMultiStageRateLimiterImpl) AllowN(namespaceID string, now time.Time, numToken int) bool
- func (r *NamespaceMultiStageRateLimiterImpl) Reserve(namespaceID string) Reservation
- func (r *NamespaceMultiStageRateLimiterImpl) ReserveN(namespaceID string, now time.Time, numToken int) Reservation
- func (r *NamespaceMultiStageRateLimiterImpl) Wait(ctx context.Context, namespaceID string) error
- func (r *NamespaceMultiStageRateLimiterImpl) WaitN(ctx context.Context, namespaceID string, numToken int) error
- type NamespaceRateLimiter
- type NamespaceRateLimiterFn
- type NamespaceRateLimiterImpl
- func (r *NamespaceRateLimiterImpl) Allow(namespaceID string) bool
- func (r *NamespaceRateLimiterImpl) AllowN(namespaceID string, now time.Time, numToken int) bool
- func (r *NamespaceRateLimiterImpl) Reserve(namespaceID string) Reservation
- func (r *NamespaceRateLimiterImpl) ReserveN(namespaceID string, now time.Time, numToken int) Reservation
- func (r *NamespaceRateLimiterImpl) Wait(ctx context.Context, namespaceID string) error
- func (r *NamespaceRateLimiterImpl) WaitN(ctx context.Context, namespaceID string, numToken int) error
- type RateFn
- type RateLimiter
- type RateLimiterImpl
- func (rl *RateLimiterImpl) Allow() bool
- func (rl *RateLimiterImpl) AllowN(now time.Time, numToken int) bool
- func (rl *RateLimiterImpl) Burst() int
- func (rl *RateLimiterImpl) Rate() float64
- func (rl *RateLimiterImpl) Reserve() Reservation
- func (rl *RateLimiterImpl) ReserveN(now time.Time, numToken int) Reservation
- func (rl *RateLimiterImpl) SetBurst(burst int)
- func (rl *RateLimiterImpl) SetRate(rate float64)
- func (rl *RateLimiterImpl) SetRateBurst(rate float64, burst int)
- func (rl *RateLimiterImpl) Wait(ctx context.Context) error
- func (rl *RateLimiterImpl) WaitN(ctx context.Context, numToken int) error
- type Reservation
Constants ¶
const (
InfDuration = rate.InfDuration
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DynamicBurst ¶ added in v1.5.7
type DynamicBurstImpl ¶ added in v1.5.7
type DynamicBurstImpl struct {
// contains filtered or unexported fields
}
DynamicBurstImpl stores the dynamic burst for rate limiter
func NewDynamicBurst ¶ added in v1.5.7
func NewDynamicBurst(burst int) *DynamicBurstImpl
func (*DynamicBurstImpl) BurstFn ¶ added in v1.5.7
func (d *DynamicBurstImpl) BurstFn() BurstFn
func (*DynamicBurstImpl) Load ¶ added in v1.5.7
func (d *DynamicBurstImpl) Load() int
func (*DynamicBurstImpl) Store ¶ added in v1.5.7
func (d *DynamicBurstImpl) Store(burst int)
type DynamicRate ¶ added in v1.5.7
type DynamicRateImpl ¶ added in v1.5.7
type DynamicRateImpl struct {
// contains filtered or unexported fields
}
DynamicRateImpl stores the dynamic rate per second for rate limiter
func NewDynamicRate ¶ added in v1.5.7
func NewDynamicRate(rate float64) *DynamicRateImpl
func (*DynamicRateImpl) Load ¶ added in v1.5.7
func (d *DynamicRateImpl) Load() float64
func (*DynamicRateImpl) RateFn ¶ added in v1.5.7
func (d *DynamicRateImpl) RateFn() RateFn
func (*DynamicRateImpl) Store ¶ added in v1.5.7
func (d *DynamicRateImpl) Store(rate float64)
type DynamicRateLimiterImpl ¶ added in v1.5.7
type DynamicRateLimiterImpl struct {
// contains filtered or unexported fields
}
DynamicRateLimiterImpl implements a dynamic config wrapper around the rate limiter
func NewDefaultIncomingDynamicRateLimiter ¶ added in v1.5.7
func NewDefaultIncomingDynamicRateLimiter( rateFn RateFn, ) *DynamicRateLimiterImpl
NewDefaultIncomingDynamicRateLimiter returns a default rate limiter for incoming traffic
func NewDefaultOutgoingDynamicRateLimiter ¶ added in v1.5.7
func NewDefaultOutgoingDynamicRateLimiter( rateFn RateFn, ) *DynamicRateLimiterImpl
NewDefaultOutgoingDynamicRateLimiter returns a default rate limiter for outgoing traffic
func NewDynamicRateLimiter ¶ added in v0.7.0
func NewDynamicRateLimiter( rateFn RateFn, burstFn BurstFn, refreshInterval time.Duration, ) *DynamicRateLimiterImpl
NewDynamicRateLimiter returns a rate limiter which handles dynamic config
func (*DynamicRateLimiterImpl) Allow ¶ added in v1.5.7
func (d *DynamicRateLimiterImpl) Allow() bool
Allow immediately returns with true or false indicating if a rate limit token is available or not
func (*DynamicRateLimiterImpl) AllowN ¶ added in v1.5.7
func (d *DynamicRateLimiterImpl) AllowN(now time.Time, numToken int) bool
AllowN immediately returns with true or false indicating if n rate limit token is available or not
func (*DynamicRateLimiterImpl) Burst ¶ added in v1.5.7
func (d *DynamicRateLimiterImpl) Burst() int
Burst returns the burst for this rate limiter
func (*DynamicRateLimiterImpl) Rate ¶ added in v1.5.7
func (d *DynamicRateLimiterImpl) Rate() float64
Rate returns the rate per second for this rate limiter
func (*DynamicRateLimiterImpl) Reserve ¶ added in v1.5.7
func (d *DynamicRateLimiterImpl) Reserve() Reservation
Reserve reserves a rate limit token
func (*DynamicRateLimiterImpl) ReserveN ¶ added in v1.5.7
func (d *DynamicRateLimiterImpl) ReserveN(now time.Time, numToken int) Reservation
ReserveN reserves n rate limit token
type MockRateLimiter ¶ added in v1.5.7
type MockRateLimiter struct {
// contains filtered or unexported fields
}
MockRateLimiter is a mock of RateLimiter interface.
func NewMockRateLimiter ¶ added in v1.5.7
func NewMockRateLimiter(ctrl *gomock.Controller) *MockRateLimiter
NewMockRateLimiter creates a new mock instance.
func (*MockRateLimiter) Allow ¶ added in v1.5.7
func (m *MockRateLimiter) Allow() bool
Allow mocks base method.
func (*MockRateLimiter) AllowN ¶ added in v1.5.7
func (m *MockRateLimiter) AllowN(now time.Time, numToken int) bool
AllowN mocks base method.
func (*MockRateLimiter) Burst ¶ added in v1.5.7
func (m *MockRateLimiter) Burst() int
Burst mocks base method.
func (*MockRateLimiter) EXPECT ¶ added in v1.5.7
func (m *MockRateLimiter) EXPECT() *MockRateLimiterMockRecorder
EXPECT returns an object that allows the caller to indicate expected use.
func (*MockRateLimiter) Rate ¶ added in v1.5.7
func (m *MockRateLimiter) Rate() float64
Rate mocks base method.
func (*MockRateLimiter) Reserve ¶ added in v1.5.7
func (m *MockRateLimiter) Reserve() Reservation
Reserve mocks base method.
func (*MockRateLimiter) ReserveN ¶ added in v1.5.7
func (m *MockRateLimiter) ReserveN(now time.Time, numToken int) Reservation
ReserveN mocks base method.
type MockRateLimiterMockRecorder ¶ added in v1.5.7
type MockRateLimiterMockRecorder struct {
// contains filtered or unexported fields
}
MockRateLimiterMockRecorder is the mock recorder for MockRateLimiter.
func (*MockRateLimiterMockRecorder) Allow ¶ added in v1.5.7
func (mr *MockRateLimiterMockRecorder) Allow() *gomock.Call
Allow indicates an expected call of Allow.
func (*MockRateLimiterMockRecorder) AllowN ¶ added in v1.5.7
func (mr *MockRateLimiterMockRecorder) AllowN(now, numToken interface{}) *gomock.Call
AllowN indicates an expected call of AllowN.
func (*MockRateLimiterMockRecorder) Burst ¶ added in v1.5.7
func (mr *MockRateLimiterMockRecorder) Burst() *gomock.Call
Burst indicates an expected call of Burst.
func (*MockRateLimiterMockRecorder) Rate ¶ added in v1.5.7
func (mr *MockRateLimiterMockRecorder) Rate() *gomock.Call
Rate indicates an expected call of Rate.
func (*MockRateLimiterMockRecorder) Reserve ¶ added in v1.5.7
func (mr *MockRateLimiterMockRecorder) Reserve() *gomock.Call
Reserve indicates an expected call of Reserve.
func (*MockRateLimiterMockRecorder) ReserveN ¶ added in v1.5.7
func (mr *MockRateLimiterMockRecorder) ReserveN(now, numToken interface{}) *gomock.Call
ReserveN indicates an expected call of ReserveN.
func (*MockRateLimiterMockRecorder) Wait ¶ added in v1.5.7
func (mr *MockRateLimiterMockRecorder) Wait(ctx interface{}) *gomock.Call
Wait indicates an expected call of Wait.
func (*MockRateLimiterMockRecorder) WaitN ¶ added in v1.5.7
func (mr *MockRateLimiterMockRecorder) WaitN(ctx, numToken interface{}) *gomock.Call
WaitN indicates an expected call of WaitN.
type MockReservation ¶ added in v1.5.7
type MockReservation struct {
// contains filtered or unexported fields
}
MockReservation is a mock of Reservation interface.
func NewMockReservation ¶ added in v1.5.7
func NewMockReservation(ctrl *gomock.Controller) *MockReservation
NewMockReservation creates a new mock instance.
func (*MockReservation) Cancel ¶ added in v1.5.7
func (m *MockReservation) Cancel()
Cancel mocks base method.
func (*MockReservation) CancelAt ¶ added in v1.5.7
func (m *MockReservation) CancelAt(now time.Time)
CancelAt mocks base method.
func (*MockReservation) Delay ¶ added in v1.5.7
func (m *MockReservation) Delay() time.Duration
Delay mocks base method.
func (*MockReservation) DelayFrom ¶ added in v1.5.7
func (m *MockReservation) DelayFrom(now time.Time) time.Duration
DelayFrom mocks base method.
func (*MockReservation) EXPECT ¶ added in v1.5.7
func (m *MockReservation) EXPECT() *MockReservationMockRecorder
EXPECT returns an object that allows the caller to indicate expected use.
func (*MockReservation) OK ¶ added in v1.5.7
func (m *MockReservation) OK() bool
OK mocks base method.
type MockReservationMockRecorder ¶ added in v1.5.7
type MockReservationMockRecorder struct {
// contains filtered or unexported fields
}
MockReservationMockRecorder is the mock recorder for MockReservation.
func (*MockReservationMockRecorder) Cancel ¶ added in v1.5.7
func (mr *MockReservationMockRecorder) Cancel() *gomock.Call
Cancel indicates an expected call of Cancel.
func (*MockReservationMockRecorder) CancelAt ¶ added in v1.5.7
func (mr *MockReservationMockRecorder) CancelAt(now interface{}) *gomock.Call
CancelAt indicates an expected call of CancelAt.
func (*MockReservationMockRecorder) Delay ¶ added in v1.5.7
func (mr *MockReservationMockRecorder) Delay() *gomock.Call
Delay indicates an expected call of Delay.
func (*MockReservationMockRecorder) DelayFrom ¶ added in v1.5.7
func (mr *MockReservationMockRecorder) DelayFrom(now interface{}) *gomock.Call
DelayFrom indicates an expected call of DelayFrom.
func (*MockReservationMockRecorder) OK ¶ added in v1.5.7
func (mr *MockReservationMockRecorder) OK() *gomock.Call
OK indicates an expected call of OK.
type MultiStageRateLimiterImpl ¶ added in v1.5.7
type MultiStageRateLimiterImpl struct {
// contains filtered or unexported fields
}
MultiStageRateLimiterImpl is a wrapper around the limiter interface
func NewMultiStageRateLimiter ¶ added in v0.7.0
func NewMultiStageRateLimiter( rateLimiters []RateLimiter, ) *MultiStageRateLimiterImpl
NewMultiStageRateLimiter returns a new rate limiter that have multiple stage
func (*MultiStageRateLimiterImpl) Allow ¶ added in v1.5.7
func (rl *MultiStageRateLimiterImpl) Allow() bool
Allow immediately returns with true or false indicating if a rate limit token is available or not
func (*MultiStageRateLimiterImpl) AllowN ¶ added in v1.5.7
func (rl *MultiStageRateLimiterImpl) AllowN(now time.Time, numToken int) bool
AllowN immediately returns with true or false indicating if n rate limit token is available or not
func (*MultiStageRateLimiterImpl) Burst ¶ added in v1.5.7
func (rl *MultiStageRateLimiterImpl) Burst() int
Burst returns the burst for this rate limiter
func (*MultiStageRateLimiterImpl) Rate ¶ added in v1.5.7
func (rl *MultiStageRateLimiterImpl) Rate() float64
Rate returns the rate per second for this rate limiter
func (*MultiStageRateLimiterImpl) Reserve ¶ added in v1.5.7
func (rl *MultiStageRateLimiterImpl) Reserve() Reservation
Reserve returns a Reservation that indicates how long the caller must wait before event happen.
func (*MultiStageRateLimiterImpl) ReserveN ¶ added in v1.5.7
func (rl *MultiStageRateLimiterImpl) ReserveN(now time.Time, numToken int) Reservation
ReserveN returns a Reservation that indicates how long the caller must wait before event happen.
type MultiStageReservationImpl ¶ added in v1.5.7
type MultiStageReservationImpl struct {
// contains filtered or unexported fields
}
func NewMultiStageReservation ¶ added in v1.5.7
func NewMultiStageReservation( ok bool, reservations []Reservation, ) *MultiStageReservationImpl
func (*MultiStageReservationImpl) Cancel ¶ added in v1.5.7
func (r *MultiStageReservationImpl) Cancel()
Cancel indicates that the reservation holder will not perform the reserved action and reverses the effects of this Reservation on the rate limit as much as possible
func (*MultiStageReservationImpl) CancelAt ¶ added in v1.5.7
func (r *MultiStageReservationImpl) CancelAt(now time.Time)
Cancel indicates that the reservation holder will not perform the reserved action and reverses the effects of this Reservation on the rate limit as much as possible
func (*MultiStageReservationImpl) Delay ¶ added in v1.5.7
func (r *MultiStageReservationImpl) Delay() time.Duration
Delay returns the duration for which the reservation holder must wait before taking the reserved action. Zero duration means act immediately.
func (*MultiStageReservationImpl) DelayFrom ¶ added in v1.5.7
func (r *MultiStageReservationImpl) DelayFrom(now time.Time) time.Duration
Delay returns the duration for which the reservation holder must wait before taking the reserved action. Zero duration means act immediately.
func (*MultiStageReservationImpl) OK ¶ added in v1.5.7
func (r *MultiStageReservationImpl) OK() bool
OK returns whether the limiter can provide the requested number of tokens
type NamespaceMultiStageRateLimiterImpl ¶ added in v1.5.7
type NamespaceMultiStageRateLimiterImpl struct { sync.RWMutex // contains filtered or unexported fields }
NamespaceMultiStageRateLimiterImpl is a multi stage rate limiter special built for multi-tenancy
func NewNamespaceMultiStageRateLimiter ¶ added in v1.5.7
func NewNamespaceMultiStageRateLimiter( namespaceRateLimiterFn NamespaceRateLimiterFn, sharedRateLimiters []RateLimiter, ) *NamespaceMultiStageRateLimiterImpl
func (*NamespaceMultiStageRateLimiterImpl) Allow ¶ added in v1.5.7
func (r *NamespaceMultiStageRateLimiterImpl) Allow( namespaceID string, ) bool
Allow attempts to allow a request to go through. The method returns immediately with a true or false indicating if the request can make progress
func (*NamespaceMultiStageRateLimiterImpl) AllowN ¶ added in v1.5.7
func (r *NamespaceMultiStageRateLimiterImpl) AllowN( namespaceID string, now time.Time, numToken int, ) bool
AllowN attempts to allow a request to go through. The method returns immediately with a true or false indicating if the request can make progress
func (*NamespaceMultiStageRateLimiterImpl) Reserve ¶ added in v1.5.7
func (r *NamespaceMultiStageRateLimiterImpl) Reserve( namespaceID string, ) Reservation
Reserve returns a Reservation that indicates how long the caller must wait before event happen.
func (*NamespaceMultiStageRateLimiterImpl) ReserveN ¶ added in v1.5.7
func (r *NamespaceMultiStageRateLimiterImpl) ReserveN( namespaceID string, now time.Time, numToken int, ) Reservation
ReserveN returns a Reservation that indicates how long the caller must wait before event happen.
type NamespaceRateLimiter ¶ added in v1.5.7
type NamespaceRateLimiter interface { // Allow attempts to allow a request to go through. The method returns // immediately with a true or false indicating if the request can make // progress Allow(namespaceID string) bool // AllowN attempts to allow a requests to go through. The method returns // immediately with a true or false indicating if the request can make // progress AllowN(namespaceID string, now time.Time, numToken int) bool // Reserve returns a Reservation that indicates how long the caller // must wait before event happen. Reserve(namespaceID string) Reservation // ReserveN returns a Reservation that indicates how long the caller // must wait before event happen. ReserveN(namespaceID string, now time.Time, numToken int) Reservation // Wait waits till the deadline for a rate limit token to allow the request // to go through. Wait(ctx context.Context, namespaceID string) error // WaitN waits till the deadline for a rate limit token to allow the request // to go through. WaitN(ctx context.Context, namespaceID string, numToken int) error }
NamespaceRateLimiter corresponds to basic rate limiting functionality.
type NamespaceRateLimiterFn ¶ added in v1.5.7
type NamespaceRateLimiterFn func(namespaceID string) RateLimiter
NamespaceRateLimiterFn returns generate a namespace specific rate limiter
type NamespaceRateLimiterImpl ¶ added in v1.5.7
NamespaceRateLimiterImpl is a rate limiter special built for multi-tenancy
func NewNamespaceRateLimiter ¶ added in v1.5.7
func NewNamespaceRateLimiter( namespaceRateLimiterFn NamespaceRateLimiterFn, ) *NamespaceRateLimiterImpl
func (*NamespaceRateLimiterImpl) Allow ¶ added in v1.5.7
func (r *NamespaceRateLimiterImpl) Allow( namespaceID string, ) bool
Allow attempts to allow a request to go through. The method returns immediately with a true or false indicating if the request can make progress
func (*NamespaceRateLimiterImpl) AllowN ¶ added in v1.5.7
AllowN attempts to allow a request to go through. The method returns immediately with a true or false indicating if the request can make progress
func (*NamespaceRateLimiterImpl) Reserve ¶ added in v1.5.7
func (r *NamespaceRateLimiterImpl) Reserve( namespaceID string, ) Reservation
Reserve returns a Reservation that indicates how long the caller must wait before event happen.
func (*NamespaceRateLimiterImpl) ReserveN ¶ added in v1.5.7
func (r *NamespaceRateLimiterImpl) ReserveN( namespaceID string, now time.Time, numToken int, ) Reservation
ReserveN returns a Reservation that indicates how long the caller must wait before event happen.
type RateLimiter ¶ added in v0.7.0
type RateLimiter interface { // Allow attempts to allow a request to go through. The method returns // immediately with a true or false indicating if the request can make // progress Allow() bool // AllowN attempts to allow a request to go through. The method returns // immediately with a true or false indicating if the request can make // progress AllowN(now time.Time, numToken int) bool // Reserve returns a Reservation that indicates how long the caller // must wait before event happen. Reserve() Reservation // ReserveN returns a Reservation that indicates how long the caller // must wait before event happen. ReserveN(now time.Time, numToken int) Reservation // Wait waits till the deadline for a rate limit token to allow the request // to go through. Wait(ctx context.Context) error // Wait waits till the deadline for n rate limit token to allow the request // to go through. WaitN(ctx context.Context, numToken int) error // Rate returns the rate per second for this rate limiter Rate() float64 // Burst returns the burst for this rate limiter Burst() int }
RateLimiter corresponds to basic rate limiting functionality.
type RateLimiterImpl ¶ added in v1.5.7
RateLimiterImpl is a wrapper around the golang rate limiter
func NewRateLimiter ¶ added in v0.7.0
func NewRateLimiter(newRate float64, newBurst int) *RateLimiterImpl
NewRateLimiter returns a new rate limiter that can handle dynamic configuration updates
func (*RateLimiterImpl) Allow ¶ added in v1.5.7
func (rl *RateLimiterImpl) Allow() bool
Allow immediately returns with true or false indicating if a rate limit token is available or not
func (*RateLimiterImpl) AllowN ¶ added in v1.5.7
func (rl *RateLimiterImpl) AllowN(now time.Time, numToken int) bool
AllowN immediately returns with true or false indicating if n rate limit token is available or not
func (*RateLimiterImpl) Burst ¶ added in v1.5.7
func (rl *RateLimiterImpl) Burst() int
Burst returns the burst for this rate limiter
func (*RateLimiterImpl) Rate ¶ added in v1.5.7
func (rl *RateLimiterImpl) Rate() float64
Rate returns the rate per second for this rate limiter
func (*RateLimiterImpl) Reserve ¶ added in v1.5.7
func (rl *RateLimiterImpl) Reserve() Reservation
Reserve reserves a rate limit token
func (*RateLimiterImpl) ReserveN ¶ added in v1.5.7
func (rl *RateLimiterImpl) ReserveN(now time.Time, numToken int) Reservation
ReserveN reserves n rate limit token
func (*RateLimiterImpl) SetBurst ¶ added in v1.5.7
func (rl *RateLimiterImpl) SetBurst(burst int)
Burst set the burst of the rate limiter
func (*RateLimiterImpl) SetRate ¶ added in v1.5.7
func (rl *RateLimiterImpl) SetRate(rate float64)
SetRate set the rate of the rate limiter
func (*RateLimiterImpl) SetRateBurst ¶ added in v1.5.7
func (rl *RateLimiterImpl) SetRateBurst(rate float64, burst int)
SetRateBurst set the rate & burst of the rate limiter
type Reservation ¶ added in v1.5.7
type Reservation interface { // OK returns whether the limiter can provide the requested number of tokens OK() bool // Cancel indicates that the reservation holder will not perform the reserved action // and reverses the effects of this Reservation on the rate limit as much as possible Cancel() // CancelAt indicates that the reservation holder will not perform the reserved action // and reverses the effects of this Reservation on the rate limit as much as possible CancelAt(now time.Time) // Delay returns the duration for which the reservation holder must wait // before taking the reserved action. Zero duration means act immediately. Delay() time.Duration // DelayFrom returns the duration for which the reservation holder must wait // before taking the reserved action. Zero duration means act immediately. DelayFrom(now time.Time) time.Duration }
Reservation holds information about events that are permitted by a Limiter to happen after a delay