code: def create_queue(queue_name, exchange_name, options = {})
        queue_options = options[:queue_options] || {durable: true}
        routing_keys  = options[:routing_keys] || []
        log "Isimud::BunnyClient: create_queue #{queue_name}: queue_options=#{queue_options.inspect}"
        queue = find_queue(queue_name, queue_options)
        bind_routing_keys(queue, exchange_name, routing_keys) if routing_keys.any?
        queue
      end
docs: Find or create a named queue and bind it to the specified exchange
  
   @param [String] queue_name name of the queue
   @param [String] exchange_name name of the AMQP exchange. Note that pre-existing exchanges must be declared as Topic
     exchanges; otherwise, an error will occur
   @param [Hash] options queue declaration options
   @option options [Boolean] :queue_options ({durable: true}) queue declaration options -- @see Bunny::Channel#queue
   @option options [Array<String>] :routing_keys ([]) routing keys to be bound to the queue. Use "*" to match any 1 word
     in a route segment. Use "#" to match 0 or more words in a segment.
   @return [Bunny::Queue] Bunny queue