Documentation ¶
Index ¶
- type ClientQueryLimiter
- type ConcurrentLimiter
- func (l *ConcurrentLimiter) AvailableRunning() int
- func (l *ConcurrentLimiter) AvailableWaiting() int
- func (l *ConcurrentLimiter) MaxRunning() int
- func (l *ConcurrentLimiter) MaxWaiting() int
- func (l *ConcurrentLimiter) Run() chan<- struct{}
- func (l *ConcurrentLimiter) RunDone()
- func (l *ConcurrentLimiter) Wait() bool
- func (l *ConcurrentLimiter) WaitDone()
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()
Click to show internal directories.
Click to hide internal directories.