class

LavinMQ::AMQP::DelayedQueue::DelayedMessageStore

Inherits LavinMQ::MessageStore < Reference < Object

A delayed queue must have its messages ordered by "expire at" so the message expire loop will look at the right message. To achieve this, messages are always added to a custom requeued store, which acts as an in-memory index ordered by when messages should be published. The requeued store is used because #shift and #first? look for requeued messages first, then read the next from disk. For a delayed queue we never want to read messages in the order they arrived (were written to disk).

Constructors

new(*args, **kwargs)
Source

Instance methods

build_index
Source
first_delayed?
Source
purge_all
Source
push(msg) : SegmentPosition

Overload to add the segment position to our "index"

Source
requeue(sp : SegmentPosition)
Source
shift_delayed?(consumer = nil) : Envelope | Nil
Source
time_to_next_expiration?

Customization used by DelayedExchangeQueue

Source

Nested types