def run
      @start = Time.now
      client.setup

      while live?
        sleeper.tick
        consumer.consume do |message|
          client.process(message)
          @message_count += 1
          sleeper.reset
        end
      end

      client.teardown
    end
def run
      @start = Time.now
      client.setup

      while live?
        sleeper.tick
        consumer.consume do |message|
          client.process(message)
          @message_count += 1
          sleeper.reset
        end
      end

      client.teardown
    end
options - A hash of configuration options.
          :client - The object upon which the callbacks are fired. It's class
                    should include Qup::BatchConsumerAPI for declarative
                    documentation purposes. Technically, the only constraint
                    is that this object implement #setup, #process and
                    #teardown (including Qup::BatchConsumerAPI includes noop
                    definitions for #setup and #teardown). Required.
          :queue_uri - The Qup format queue URI. Required.
          :queue_name - The name of the queue that messages will be consumed
                        from. Required.
          :max_size - The maximum number of messages to process. Optional.
          :max_age - The maximum number of seconds (from when #run is called)
                     before finishing. Note that :max_size and :max_age are
                     ORed, meaning that the BatchConsumer will finish when
                     the first constraint is met. If neither constraint is
                     provided, the BatchConsumer will never finish (i.e. #run
                     will block indefinitely). Optional.