Method: Bunny::Channel#queue

Defined in:
lib/bunny/channel.rb

#queue(name = AMQ::Protocol::EMPTY_STRING, opts = {}) ⇒ Bunny::Queue

Declares a queue or looks it up in the per-channel cache.

Parameters:

  • name (String) (defaults to: AMQ::Protocol::EMPTY_STRING)

    Queue name. Pass an empty string to declare a server-named queue (make RabbitMQ generate a unique name).

  • opts (Hash) (defaults to: {})

    Queue properties and other options

Options Hash (opts):

  • :durable (Boolean) — default: false

    Should this queue be durable?

  • :auto-delete (Boolean) — default: false

    Should this queue be automatically deleted when the last consumer disconnects?

  • :exclusive (Boolean) — default: false

    Should this queue be exclusive (only can be used by this connection, removed when the connection is closed)?

  • :arguments (Hash) — default: {}

    Optional arguments (x-arguments)

Returns:

  • (Bunny::Queue)

    Queue that was declared or looked up in the cache

See Also:



478
479
480
481
482
483
484
485
# File 'lib/bunny/channel.rb', line 478

def queue(name = AMQ::Protocol::EMPTY_STRING, opts = {})
  throw ArgumentError.new("queue name must not be nil") if name.nil?

  q = find_queue(name) || Bunny::Queue.new(self, name, opts)

  record_queue(q)
  register_queue(q)
end