LavinMQ::AMQP::Queue
Inherits LavinMQ::AMQP::Argument::DeadLettering < LavinMQ::AMQP::ArgumentTarget < LavinMQ::AMQP::QueueStats < LavinMQ::Stats < LavinMQ::SortableJSON < LavinMQ::PolicyTarget < Reference < Object
Constants
__nil is a workaround for not being able to declare an empty namedtuple and populate it from macro
The expire loop wakes on deadlines rounded up to this many ms, so messages published close together expire in one batch instead of one wakeup per millisecond. Messages are never expired early.
The latest deadline (unix ms) that can be rounded up to the granularity without overflowing. A message whose TTL ends later never expires.
Class methods
Where a queue, or an MQTT session, named name keeps its files
Time until the expire loop should wake up for a message expiring at expire_at (unix ms)
Instance methods
Adds the consumer unless the queue is in exclusive use, checked atomically with the add. Returns false if the consumer was refused for that reason, raises ClosedError if the queue is closed or about to be deleted.
If nil is returned it means that the delivery limit is reached
Like stats_details but without log
The connection that declared this exclusive queue, told when the queue is deleted
The connection that declared this exclusive queue, told when the queue is deleted
Appends a String representation of this object which includes its class name, its object address and the values of all instance variables.
class Person
def initialize(@name : String, @age : Int32)
end
end
Person.new("John", 32).inspect # => #<Person:0x10fd31f20 @name="John", @age=32>
Used for when channel recovers without requeue eg. redelivers messages it already has unacked
Consumer-initiated reject (basic.reject and basic.nack): delays via the retry queue if configured
Broker-initiated requeue (channel close, basic.recover): always instant, never via the retry queue