Как установить основные свойства сообщения для сообщения в Rabbitmq? - PullRequest
3 голосов
/ 11 ноября 2010

Я использую Java-клиент Rabbitmq API. Я хочу установить Основные свойства сообщения, а также получить идентификатор сообщения. Если возможно, предоставьте некоторый код, чтобы разобраться в этом.

Спасибо

Ответы [ 2 ]

2 голосов
/ 16 ноября 2010

При отправке сообщения через java-клиент обычно оно публикуется на канал типа

 CHANNEL.basicPublish(EXCHANGE_NAME, QUEUE_ROUTING_KEY, MessageProperties.PERSISTENT_TEXT_PLAIN, "message".getBytes)

Здесь вы можете установить свойства сообщения

Вы можете получить сообщение с помощью агента доставки. Высначала нужно связать очередь следующим образом:

 Channel channel = conn.createChannel();
      String exchangeName = "myExchange";
      String queueName = "myQueue";
      String routingKey = "testRoute"; 
      boolean durable = true;
      channel.exchangeDeclare(exchangeName, "direct", durable);
      channel.queueDeclare(queueName, durable,false,false,durable, null);
channel.queueBind(queueName, exchangeName, routingKey);
      boolean noAck = false;
      QueueingConsumer consumer = new QueueingConsumer(channel);
      channel.basicConsume(queueName, noAck, consumer);

. Затем используйте команду Delivery для получения сообщения MSG

QueueingConsumer.Delivery delivery;
            try {
               delivery = consumer.nextDelivery();

            } catch (InterruptedException ie) {
               continue;
            }
.
0 голосов
/ 04 июня 2015

Вот как это можно сделать:

int PERSISTENCE_MESSAGE = 2; // Persist message
String TEXT_MESSAGE = "text/plain";
String queueName = "QUE-1";

Channel channel = this.connection.createChannel();
channel.queueDeclare(queueName, true, false, false, null);

// Build message properties
Map messageProps = new HashMap();
//messageProps.put("TIME_MSG_RECEIVED", time);
messageProps.put("SOURCE_SYS", "SRC1");
messageProps.put("DESTINATION_SYS", "DST1");

// Set message properties
AMQP.BasicProperties.Builder basicProperties = new AMQP.BasicProperties.Builder();
basicProperties.contentType(TEXT_MESSAGE).deliveryMode(PERSISTENCE_MESSAGE)
.priority(1).headers(messageProps);

channel.basicPublish("", queueName,  basicProperties.build(), message.getBytes());
System.out.println(" Sent message to RabbitMQ: '" + message + "'");
channel.close();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...