疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

springboot~rabbitmq自己通过UI手动发布队列需要注意的地方


 

 

 

 

springboot里发布队列消息

为了兼容性和可读性更好,我们一般使用json字符串做为数据载体。

 public void decreaseCallMonitor(CallMonitorInfo callMonitorInfo) throws Exception {     try {       rabbitTemplate.convertAndSend(           AmqpConfig.DATA_COLLECTION_EXCHANGE,           AmqpConfig.CALLMONITOR_DECREASE_BINDING,           objectMapper.writeValueAsString(callMonitorInfo)       );       logger.debug("Enter {},message:{}", "decreaseCallMonitor", callMonitorInfo.toString());      } catch (Exception ex) {       logger.error("MQ.decreaseCallMonitor.error", ex);     }   }

springboot里订阅消息

  @RabbitHandler   @RabbitListener(queues = AmqpConfig.CUSTOMER_TERMINATE_BINDING)   public void customerTerminate(String data) {     try {       TerminateDTO terminateDTO = objectMapper.readValue(data, TerminateDTO.class);       customerBusinessInfoMapper.updateCustomer_business_info(ImmutableMap.of(           "status", EnumCustomerStatus.TERMINATE.getCode(),           "customerId", terminateDTO.getCustomerId()       ));     } catch (Exception ex) {       logger.error("解约同步异常", ex);     }   }

通过UI15672手动发消息要注意的地方

  1. 添加properties,声明它是utf-8及文本类型
content_encoding:utf-8 content_type:text/plain
  1. json字符串需要压缩,把回车换行都去掉,否则会出错
{"signSalespersonId":1001,"signSalesperson":"mq","signTime":null,"customerId":501806811767111700}

以上两点注意好,手动发布队列就没有问题了!