LavinMQ::Shovel::Runner
Inherits LavinMQ::Shovel::OutcomeListener < LavinMQ::SortableJSON < Reference < Object
Constants
Monotonic clock as an Int64 so the deadline can live in an Atomic. The coarse clock is plenty for backoff windows of 0.5s and up, and spares a clock read per delivered message.
Constructors
Class methods
Backoff before the next delivery attempt after failures consecutive
transient failures: 0.5s, 1s, 2s, 4s, … doubling, capped at
MAX_DELIVERY_DELAY, then holding there.
Instance methods
Time left before the next delivery may be attempted; zero when the destination is healthy.
The single place a delivery Outcome becomes a source action: a confirmed delivery acks; a rejection (broker nack or HTTP error) requeues so queue-based retry/DLX policies still apply. Called by the destination (synchronously for HTTP, from the confirm fiber for AMQP on-confirm).