|
@@ -50,11 +50,19 @@ public class OrderMsgHandler {
|
|
|
return BindingBuilder.bind(orderStateQueue()).to(orderStateExchange());
|
|
|
}
|
|
|
|
|
|
- @RabbitListener(queues = "order_state_queue") //监听器监听指定的Queue
|
|
|
- public void processOrderState(String message, Channel channel, Message msg) {
|
|
|
- log.info("============================== Receive:" + message);
|
|
|
+ /**
|
|
|
+ * 工单传过来的是一个字符串消息,alarmDataStarter中注册了一个Jackson2JsonMessageConverter的消息转换器
|
|
|
+ * 它会将字符串消息转换为byte数组,如果消息的类型为json,它会将消息转换为对象
|
|
|
+ *
|
|
|
+ * @author lixing
|
|
|
+ * @version V1.0 2021/11/22 10:06 下午
|
|
|
+ */
|
|
|
+ @RabbitListener(queues = "order_state_queue")
|
|
|
+ public void processOrderState(byte[] message, Channel channel, Message msg) {
|
|
|
+ String messageStr = new String(message);
|
|
|
+ log.info("============================== Receive:" + messageStr);
|
|
|
try {
|
|
|
- OrderStateMessage orderStateMessage = StringUtil.transferItemToDTO(message, OrderStateMessage.class);
|
|
|
+ OrderStateMessage orderStateMessage = StringUtil.transferItemToDTO(messageStr, OrderStateMessage.class);
|
|
|
log.info("currentThread:{}", Thread.currentThread().getId());
|
|
|
log.info("order_id: {}", orderStateMessage.getOrder_id());
|
|
|
log.info("order_state: {}", orderStateMessage.getOrder_state());
|
|
@@ -63,7 +71,7 @@ public class OrderMsgHandler {
|
|
|
// 手动确认消息已消费
|
|
|
channel.basicAck(msg.getMessageProperties().getDeliveryTag(),false);
|
|
|
} catch (Exception e) {
|
|
|
- log.error("工单状态消息消费失败: {}", e.getMessage());
|
|
|
+ log.error("工单状态消息消费失败", e);
|
|
|
try {
|
|
|
// 将消费失败的消息移除消息队列,避免重复消费
|
|
|
channel.basicReject(msg.getMessageProperties().getDeliveryTag(),false);
|