dengsixing 2 vuotta sitten
vanhempi
commit
fb44787adc

+ 1 - 2
4dkankan-utils-rabbitmq/src/main/java/com/fdkankan/rabbitmq/callback/ProducerCallback.java

@@ -21,8 +21,7 @@ public class ProducerCallback implements RabbitTemplate.ConfirmCallback,RabbitTe
     //confirms模式:无论exchange投递消息是成功或是失败,都会返回ack,我们可以根据返回的ack是成功还是失败,做相应的业务处理
     @Override
     public void confirm(CorrelationData correlationData, boolean ack, String cause) {
-        String messageId = correlationData.getReturnedMessage().getMessageProperties()
-            .getMessageId();
+        String messageId = correlationData.getId();
         //投递成功
         if(ack){
             log.info("消息投递成功,id:{}", messageId);

+ 5 - 3
4dkankan-utils-rabbitmq/src/main/java/com/fdkankan/rabbitmq/util/RabbitMqProducer.java

@@ -7,6 +7,7 @@ import com.rabbitmq.client.AMQP.Queue.DeclareOk;
 import com.rabbitmq.client.Channel;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.amqp.rabbit.connection.CorrelationData;
 import org.springframework.amqp.rabbit.core.ChannelCallback;
 import org.springframework.amqp.rabbit.core.RabbitTemplate;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -37,11 +38,12 @@ public class RabbitMqProducer {
      * 工作队列模式发送
      */
     public void sendByWorkQueue(String queue, Object content){
-        log.info("开始发送Mq消息,消息队列:{},消息内容:{}",queue, new JSONObject(content).toString());
+        String messageId = UUID.randomUUID().toString();
+        log.info("开始发送Mq消息,messageId:{},消息队列:{},消息内容:{}",messageId, queue, new JSONObject(content).toString());
         rabbitTemplate.convertAndSend(queue, content, message -> {
-            message.getMessageProperties().setMessageId(UUID.randomUUID().toString());
+            message.getMessageProperties().setMessageId(messageId);
             return message;
-        });
+        }, new CorrelationData(messageId));
     }
 
     /**