Kombu.Utils.Limits.TokenBucket (Kombu v0.1.0)

Copy Markdown View Source

Token Bucket rate limiter (kombu.utils.limits.TokenBucket).

Summary

Types

t()

@type t() :: %Kombu.Utils.Limits.TokenBucket{
  capacity: float(),
  contents: :queue.queue(),
  fill_rate: float(),
  timestamp: float(),
  tokens: float()
}

Functions

add(bucket, item)

@spec add(t(), term()) :: t()

can_consume(bucket, tokens \\ 1, opts \\ [])

@spec can_consume(t(), number(), keyword()) :: {boolean(), t()}

clear_pending(bucket)

@spec clear_pending(t()) :: t()

expected_time(bucket, tokens \\ 1, opts \\ [])

@spec expected_time(t(), number(), keyword()) :: {float(), t()}

new(fill_rate, capacity \\ 1, opts \\ [])

@spec new(number(), number(), keyword()) :: t()

pop(bucket)

@spec pop(t()) :: {term(), t()}