Commit 102ea6fd by 周晓航

MQ的可靠性投递优化

parent 1e39a178
...@@ -62,7 +62,8 @@ public class OrderCallBackMQService { ...@@ -62,7 +62,8 @@ public class OrderCallBackMQService {
private AssortmentOpenPlatformWxappManager openPlatformWxappManager; private AssortmentOpenPlatformWxappManager openPlatformWxappManager;
@Value("${saas.order.invoice.report.partnerIds}") @Value("${saas.order.invoice.report.partnerIds}")
private String invoicePartnerIds; private String invoicePartnerIds;
@Autowired
private SendMQConfirmCallback sendMQConfirmCallback;
private static final String backOrdersChangeOrderStatusConsumerQueue = "program.backorders_change_order_status_consumer_queue"; private static final String backOrdersChangeOrderStatusConsumerQueue = "program.backorders_change_order_status_consumer_queue";
private static final String backOrdersNotifyActivityExchange = "program.backorders_notify_activity_exchange"; private static final String backOrdersNotifyActivityExchange = "program.backorders_notify_activity_exchange";
...@@ -376,7 +377,6 @@ public class OrderCallBackMQService { ...@@ -376,7 +377,6 @@ public class OrderCallBackMQService {
} }
/** /**
* 订单状态公共处理中心 queue * 订单状态公共处理中心 queue
* *
...@@ -392,7 +392,7 @@ public class OrderCallBackMQService { ...@@ -392,7 +392,7 @@ public class OrderCallBackMQService {
Header header = new Header(MQAction.UPDATE.getAction(), "call-back-service-api", Header header = new Header(MQAction.UPDATE.getAction(), "call-back-service-api",
OrderCallBackConfig.ORDER_STATUS_PROCESS_CENTER_QUEUE_ROUTING_KEY, OrderCallBackConfig.ORDER_STATUS_PROCESS_CENTER_QUEUE); OrderCallBackConfig.ORDER_STATUS_PROCESS_CENTER_QUEUE_ROUTING_KEY, OrderCallBackConfig.ORDER_STATUS_PROCESS_CENTER_QUEUE);
MQMessage<OrderCallBackRequestVo> message = new MQMessage<>(header, body); MQMessage<OrderCallBackRequestVo> message = new MQMessage<>(header, body);
mqService.convertAndSend(OrderCallBackConfig.TOPIC_EXCHANGE_NAME, OrderCallBackConfig.ORDER_STATUS_PROCESS_CENTER_QUEUE_ROUTING_KEY, message); sendMQConfirmCallback.convertAndSend(OrderCallBackConfig.TOPIC_EXCHANGE_NAME, OrderCallBackConfig.ORDER_STATUS_PROCESS_CENTER_QUEUE_ROUTING_KEY, message);
ApiLog.infoMessage("send order_status_process_center_queue end orderCode:{}", body.getOrderCode()); ApiLog.infoMessage("send order_status_process_center_queue end orderCode:{}", body.getOrderCode());
} }
} catch (Exception e) { } catch (Exception e) {
......
package cn.freemud.amp.service; package cn.freemud.amp.service;
import cn.freemud.amqp.FastJsonMessageConverter;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
import org.springframework.amqp.core.Message; import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.connection.ConnectionFactory;
import org.springframework.amqp.rabbit.connection.CorrelationData; import org.springframework.amqp.rabbit.connection.CorrelationData;
import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Configurable; import org.springframework.beans.factory.annotation.Configurable;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Primary;
import org.springframework.context.annotation.Scope;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
...@@ -19,10 +24,24 @@ import javax.annotation.PostConstruct; ...@@ -19,10 +24,24 @@ import javax.annotation.PostConstruct;
@Log4j2 @Log4j2
public class SendMQConfirmCallback { public class SendMQConfirmCallback {
@Bean
@Scope("prototype")
@Primary
public RabbitTemplate rabbitTemplate(ConnectionFactory connectionFactory) {
RabbitTemplate template = new RabbitTemplate(connectionFactory);
template.setMessageConverter(new FastJsonMessageConverter(Object.class));
template.afterPropertiesSet();
return template;
}
@Autowired @Autowired
private RabbitTemplate rabbitTemplate; private RabbitTemplate rabbitTemplate;
public void convertAndSend(String exchange, String queueName, final Object object) {
this.rabbitTemplate.convertAndSend(exchange, queueName, object);
}
/** /**
* 定制 RabbitTemplate * 定制 RabbitTemplate
* <p> * <p>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment