Ste*_*ano 2 java rabbitmq spring-rabbit
我使用 Rabbit MQ 发送和接收 JSON 消息。
我已经使用 RabbitTemplate 实例和 convertAndSend 方法实现了一个应用程序来向交换发送消息,如下所示:

rabbitTemplate.convertAndSend(exchangeNameOut, message.getString(PERSISTENCE_MESSAGE_ROUTING_KEY),
message.getString(PERSISTENCE_MESSAGE_BODY), new CorrelationData(""+analyticRuntime.getId()));
Run Code Online (Sandbox Code Playgroud)
在检索消息时,侧接收器,我实现了以下方法:
@RabbitListener(queues = "${rabbit.queue.mail.name}",containerFactory = "rabbitListenerContainerFactory")
public void processMailMessage(Message message) {
log.info("ENTER [processMailMessage] ");
Mail mail;
JSONObject messageBody = new JSONObject(new String(message.getBody()));
String asset = "" + messageBody.get(Constants.PERSISTENCE_MESSAGE_ASSET_ID_KEY);
String body = "" + messageBody.get(Constants.PERSISTENCE_MESSAGE_EVENT_KEY);
String alarms = "";
log.info("[processMailMessage] message.getMessageProperties().getCorrelationId() : " + message.getMessageProperties().getCorrelationId()";
}
Run Code Online (Sandbox Code Playgroud)
问题是:
谢谢
不; 相关数据用于关联发布者确认发送;它与相关 Id 属性无关。
使用MessagePostProcessor:
rabbitTemplate.convertAndSend(exchangeNameOut, message.getString(PERSISTENCE_MESSAGE_ROUTING_KEY),
message.getString(PERSISTENCE_MESSAGE_BODY),
m -> {
m.getMessageProperties().setCorrelationIdString(""+analyticRuntime.getId());
return m;
});
Run Code Online (Sandbox Code Playgroud)
如果您不使用 Java8,请使用 new MessagePostProcessor() { ... }
| 归档时间: |
|
| 查看次数: |
3024 次 |
| 最近记录: |