class

Deadfinder::HttpClient::HostThrottle

Inherits Reference < Object

Per-host minimum interval between requests (--delay). Keyed by host so a slow or throttled host only ever delays the fibers that are talking to it.

Slots are reserved rather than measured after the fact: each caller claims the next free instant for its host and sleeps until then, so N fibers racing on one host end up spaced delay apart instead of all waking at once and firing together.

Constructors

Instance methods

acquire(key : String, delay : Time::Span) : Nil
Source
penalize(key : String, span : Time::Span) : Nil

Pushes a host's next free slot out by span, so a Retry-After earned by one fiber also holds back every other fiber queued on that host instead of each of them having to collect its own 429 first.

Source
reset
Source