Rabbitmq如何在没有while循环的情况下一次读取数据

时间:2015-09-02 13:30:12

标签: rabbitmq rabbitmq-exchange

我正在以这种方式从RabbitMQ(java客户端)读取数据。

while(true)
        {
          QueueingConsumer.Delivery delivery = consumer.nextDelivery();
          String message = new String(delivery.getBody());

          System.out.println(message);

        }

我可以在没有while循环的情况下读取队列中的所有数据吗?

1 个答案:

答案 0 :(得分:0)

您是否阅读过the tutorials on the RabbitMQ website

这看起来像消费消息的基本java代码:

Consumer consumer = new DefaultConsumer(channel) {
  @Override
  public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body)
  throws IOException {
    String message = new String(body, "UTF-8");
      System.out.println(" [x] Received '" + message + "'");
  }
};

channel.basicConsume(QUEUE_NAME, true, consumer);

这应该将所有消息发送给指定的消费者。