concurrent_limiter

package
v3.8.0 Latest Latest
Warning

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

Go to latest
Published: May 6, 2022 License: GPL-3.0 Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ClientQueryLimiter

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

func NewClientQueryLimiter

func NewClientQueryLimiter(maxQueries int) *ClientQueryLimiter

func (*ClientQueryLimiter) Acquire

func (l *ClientQueryLimiter) Acquire(key string) bool

func (*ClientQueryLimiter) Done

func (l *ClientQueryLimiter) Done(key string)

type ConcurrentLimiter

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

ConcurrentLimiter is a soft limiter. It can limit how many tasks are running and track how many tasks are going to run.

func NewConcurrentLimiter

func NewConcurrentLimiter(maxRunning, maxWaiting int) *ConcurrentLimiter

NewConcurrentLimiter returns a ConcurrentLimiter that can limit the number of running goroutine to the maxRunning and the number of waiting goroutine to maxWaiting. maxWaiting >= maxRunning > 0.

func (*ConcurrentLimiter) AvailableRunning

func (l *ConcurrentLimiter) AvailableRunning() int

func (*ConcurrentLimiter) AvailableWaiting

func (l *ConcurrentLimiter) AvailableWaiting() int

func (*ConcurrentLimiter) MaxRunning

func (l *ConcurrentLimiter) MaxRunning() int

func (*ConcurrentLimiter) MaxWaiting

func (l *ConcurrentLimiter) MaxWaiting() int

func (*ConcurrentLimiter) Run

func (l *ConcurrentLimiter) Run() chan<- struct{}

func (*ConcurrentLimiter) RunDone

func (l *ConcurrentLimiter) RunDone()

RunDone releases the permission.

func (*ConcurrentLimiter) Wait

func (l *ConcurrentLimiter) Wait() bool

func (*ConcurrentLimiter) WaitDone

func (l *ConcurrentLimiter) WaitDone()

Jump to

Keyboard shortcuts

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