Method: AMQP::Queue#queue_declare

Defined in:
lib/amqp/queue.rb

#queue_declare(passive = false, durable = false, exclusive = false, auto_delete = false, nowait = false, arguments = nil, &block) ⇒ Queue

Declares this queue.

Returns:

Raises:

  • (ArgumentError)

See Also:



928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
# File 'lib/amqp/queue.rb', line 928

def queue_declare(passive = false, durable = false, exclusive = false, auto_delete = false, nowait = false, arguments = nil, &block)
  raise ArgumentError, "declaration with nowait does not make sense for server-named queues! Either specify name other than empty string or use #declare without nowait" if nowait && self.anonymous?

  # these two are for autorecovery. MK.
  @passive      = passive
  @server_named = @name.empty?

  @durable     = durable
  @exclusive   = exclusive
  @auto_delete = auto_delete
  @arguments   = arguments

  nowait = true if !block && !@name.empty? && nowait.nil?
  @connection.send_frame(AMQ::Protocol::Queue::Declare.encode(@channel.id, @name, passive, durable, exclusive, auto_delete, nowait, arguments))

  if !nowait
    self.append_callback(:declare, &block)
    @channel.queues_awaiting_declare_ok.push(self)
  end

  self
end