Установка свойств reply_to в RabbitListener - PullRequest
0 голосов
/ 22 марта 2019

Я новичок в RabbitMQ. Я использую следующий слушатель в моей конфигурации Spring:

@RabbitListener(queues = "${rabbitmq.queue.a}")
@SendTo("${rabbitmq.queue.b}")
public ResponseMessage receive(RequestMessage request) {
    ResponseMessage response = new ResponseMessage();
    response.setRawPayload(jsonMapper.toJson(request));
    return response;
}

И мне бы хотелось, чтобы при отправке сообщения в очередь rabbitmq.queue.b из этого метода для свойства «reply_to» было установлено это сообщение.

@Value("${rabbitmq.queue.b}")
private String responseQueue;

@Bean
Queue responseQueue() {
    return QueueBuilder
            .durable(responseQueue)
            .build();
}

Спасибо за любую помощь.

1 Ответ

0 голосов
/ 22 марта 2019

Не уверен, что это «должно быть установлено для этого сообщения», но reply_to может быть обработано примерно так:

@RabbitListener(queues = "${rabbitmq.queue.a}")
@SendTo("${rabbitmq.queue.b}")
public Message<ResponseMessage> receive(RequestMessage request) {
    ResponseMessage response = new ResponseMessage();
    response.setRawPayload(jsonMapper.toJson(request));
    return org.springframework.messaging.support.MessageBuilder.withPayload(response)
                 .setHeader(AmqpHeaders.REPLY_TO, "YOUR_QUEUE_NAME_FOR_REPLY")  
                 .build();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...