From d0be55940b4d0795c164db0d163104733679c255 Mon Sep 17 00:00:00 2001 From: Guoqs <123@jsowell.com> Date: Thu, 26 Dec 2024 16:29:00 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E5=8A=A0=E6=B3=A8=E9=87=8A=20and=20?= =?UTF-8?q?=E7=89=B9=E5=AE=9A=E7=AB=99=E7=82=B9id=E8=B5=B0=E6=96=B0?= =?UTF-8?q?=E7=9A=84=E5=88=86=E8=B4=A6=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jsowell/common/config/mq/RabbitConfig.java | 2 +- .../com/jsowell/mq/OrderRabbitListener.java | 18 +++++++++++++----- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/jsowell-common/src/main/java/com/jsowell/common/config/mq/RabbitConfig.java b/jsowell-common/src/main/java/com/jsowell/common/config/mq/RabbitConfig.java index efa684869..0917f1201 100644 --- a/jsowell-common/src/main/java/com/jsowell/common/config/mq/RabbitConfig.java +++ b/jsowell-common/src/main/java/com/jsowell/common/config/mq/RabbitConfig.java @@ -78,7 +78,7 @@ public class RabbitConfig { // 预加载消息数量 -- QOS containerFactory.setPrefetchCount(1); // 应答模式(此处设置为手动) - // containerFactory.setAcknowledgeMode(AcknowledgeMode.MANUAL); + // containerFactory.setAcknowledgeMode(AcknowledgeMode.MANUAL); // 2024年12月26日16点27分 取消了手动应答配置 // 消息序列化方式 containerFactory.setMessageConverter(new Jackson2JsonMessageConverter()); // 设置通知调用链 (这里设置的是重试机制的调用链) diff --git a/jsowell-pile/src/main/java/com/jsowell/mq/OrderRabbitListener.java b/jsowell-pile/src/main/java/com/jsowell/mq/OrderRabbitListener.java index c066b92a0..7ca199524 100644 --- a/jsowell-pile/src/main/java/com/jsowell/mq/OrderRabbitListener.java +++ b/jsowell-pile/src/main/java/com/jsowell/mq/OrderRabbitListener.java @@ -1,5 +1,7 @@ package com.jsowell.mq; +import com.google.common.collect.Lists; +import com.huifu.adapay.core.exception.BaseAdaPayException; import com.jsowell.common.constant.RabbitConstants; import com.jsowell.pile.dto.AfterSettleOrderDTO; import com.jsowell.pile.service.OrderBasicInfoService; @@ -11,6 +13,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.io.IOException; +import java.util.List; /** * 监听RabbitMQ消息 订单 @@ -21,6 +24,8 @@ public class OrderRabbitListener { @Autowired private OrderBasicInfoService orderBasicInfoService; + private List stationIdList = Lists.newArrayList(); + /** * 多线程消费请求消息 * @param message @@ -29,12 +34,15 @@ public class OrderRabbitListener { public void receiveChargeOrderData(AfterSettleOrderDTO afterSettleOrderDTO, Channel channel, Message message) throws IOException { log.info("接收到订单结算数据:{}", afterSettleOrderDTO); - // try { - // orderBasicInfoService.realTimeOrderSplit(afterSettleOrderDTO); - // } catch (BaseAdaPayException e) { - // throw new RuntimeException(e); - // } + if (stationIdList.contains(afterSettleOrderDTO.getStationId())) { + try { + orderBasicInfoService.realTimeOrderSplit(afterSettleOrderDTO); + } catch (BaseAdaPayException e) { + throw new RuntimeException(e); + } + } + // 2024年12月26日16点27分 取消了手动应答配置 //由于配置设置了手动应答,所以这里要进行一个手动应答。注意:如果设置了自动应答,这里又进行手动应答,会出现double ack,那么程序会报错。 // channel.basicAck(message.getMessageProperties().getDeliveryTag(),false); }