def declare(type, name, options = {})
      return false unless usable?
      begin
        logger.info("[setup] Declaring #{name} #{type.to_s} on broker #{@alias}")
        delete_amqp_resources(:queue, name)
        @channel.__send__(type, name, options)
        true
      rescue StandardError => e
        logger.exception("Failed declaring #{type.to_s} #{name} on broker #{@alias}", e, :trace)
        @exception_stats.track("declare", e)
        false
      end
    end
def declare(type, name, options = {})
      return false unless usable?
      begin
        logger.info("[setup] Declaring #{name} #{type.to_s} on broker #{@alias}")
        delete_amqp_resources(:queue, name)
        @channel.__send__(type, name, options)
        true
      rescue StandardError => e
        logger.exception("Failed declaring #{type.to_s} #{name} on broker #{@alias}", e, :trace)
        @exception_stats.track("declare", e)
        false
      end
    end
Declare queue or exchange object but do not subscribe to it

 === Parameters
 type(Symbol):: Type of object: :queue, :direct, :fanout or :topic
 name(String):: Name of object
 options(Hash):: Standard AMQP declare options

 === Return
 (Boolean):: true if declare successfully, otherwise false