class

RateLimiter::MultiLimiter

Inherits RateLimiter::LimiterLike / Reference / Object

A rate limiter combining multiple Limiters.

A MultiLimter tries to acquire tokens from limiters producing at the lowest rate first. This mitigates the scenario where tokens are acquired and then wasted due to a single rate limiter timing out.

Constructors

new(*rate_limiters : Limiter)
Source

Instance methods

get(max_wait : Time::Span) : Token | Timeout

Returns a Token if one is available within max_wait time, otherwise it returns a Timeout. Blocking.

Source
get

Returns a Token as soon as available. Blocking.

Source