|
|
@ -25,43 +25,28 @@ import java.util.Map; |
|
|
|
@Slf4j |
|
|
|
@Slf4j |
|
|
|
@RabbitListener(queues = RabbitConstant.OPEN_ORDER_QUEUE) |
|
|
|
@RabbitListener(queues = RabbitConstant.OPEN_ORDER_QUEUE) |
|
|
|
@Component |
|
|
|
@Component |
|
|
|
public class DirectQueueOneHandler { |
|
|
|
public class OpenOrderHandler { |
|
|
|
|
|
|
|
|
|
|
|
@Autowired |
|
|
|
@Autowired |
|
|
|
private IPanFactoryDataService panFactoryDataService; |
|
|
|
private IPanFactoryDataService panFactoryDataService; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private Integer retryCount = 1; |
|
|
|
|
|
|
|
|
|
|
|
@RabbitHandler |
|
|
|
@RabbitHandler |
|
|
|
public void orderStatusHandlerManualAck(Map map, Message message, Channel channel) throws IOException { |
|
|
|
public void openOrderStatusHandler(Map map, Message message, Channel channel) throws IOException { |
|
|
|
// 如果手动ACK,消息会被监听消费,但是消息在队列中依旧存在,如果 未配置 acknowledge-mode 默认是会在消费完毕后自动ACK掉
|
|
|
|
// 如果手动ACK,消息会被监听消费,但是消息在队列中依旧存在,如果 未配置 acknowledge-mode 默认是会在消费完毕后自动ACK掉
|
|
|
|
final long deliveryTag = message.getMessageProperties().getDeliveryTag(); |
|
|
|
final long deliveryTag = message.getMessageProperties().getDeliveryTag(); |
|
|
|
log.info("##################我进入这里了"); |
|
|
|
String msg = new String(message.getBody()); |
|
|
|
|
|
|
|
log.info("##################我进入这里了 retryCount={}",retryCount++); |
|
|
|
int i = 1/0; |
|
|
|
|
|
|
|
OrderInfoDTO orderInfoDTO = (OrderInfoDTO) map.get("messageData"); |
|
|
|
OrderInfoDTO orderInfoDTO = (OrderInfoDTO) map.get("messageData"); |
|
|
|
String orderNo = orderInfoDTO.getOrderNo(); |
|
|
|
String orderNo = orderInfoDTO.getOrderNo(); |
|
|
|
R r = panFactoryDataService.handleData(orderInfoDTO); |
|
|
|
R r = panFactoryDataService.handleData(orderInfoDTO); |
|
|
|
int code = r.getCode(); |
|
|
|
int code = r.getCode(); |
|
|
|
if(code == 400 || code == 200){ |
|
|
|
if(code == 400 || code == 200){ |
|
|
|
log.info("##################orderStatusHandlerManualAck: 该条数据不用处理 orderNo={}",orderNo); |
|
|
|
log.info("##################openOrderStatusHandler: 该条数据不用处理 orderNo={}",orderNo); |
|
|
|
channel.basicAck(deliveryTag,true); |
|
|
|
channel.basicAck(deliveryTag,true); |
|
|
|
}else{ |
|
|
|
}else{ |
|
|
|
throw new CustomerException(code,r.getMsg()); |
|
|
|
throw new CustomerException(code,r.getMsg()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// try {
|
|
|
|
|
|
|
|
// log.info("直接队列1,手动ACK,接收消息:{}", map);
|
|
|
|
|
|
|
|
// OrderInfoDTO orderInfoDTO = (OrderInfoDTO) map.get("messageData");
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// channel.basicAck(deliveryTag, false);
|
|
|
|
|
|
|
|
// } catch (IOException e) {
|
|
|
|
|
|
|
|
// try {
|
|
|
|
|
|
|
|
// // 处理失败,重新压入MQ
|
|
|
|
|
|
|
|
// channel.basicReject(deliveryTag,true);
|
|
|
|
|
|
|
|
// } catch (IOException e1) {
|
|
|
|
|
|
|
|
// e1.printStackTrace();
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |