浏览代码

消息持久化

rengb 3 年之前
父节点
当前提交
b14c0eca54
共有 1 个文件被更改,包括 11 次插入1 次删除
  1. 11 1
      security-center/src/main/java/com/lantone/security/component/MessageSender.java

+ 11 - 1
security-center/src/main/java/com/lantone/security/component/MessageSender.java

@@ -1,6 +1,10 @@
 package com.lantone.security.component;
 
 import com.lantone.security.enums.QueueEnum;
+import org.springframework.amqp.AmqpException;
+import org.springframework.amqp.core.Message;
+import org.springframework.amqp.core.MessageDeliveryMode;
+import org.springframework.amqp.core.MessagePostProcessor;
 import org.springframework.amqp.rabbit.core.RabbitTemplate;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -20,7 +24,13 @@ public class MessageSender {
      * 基础信息变更导致redis需要刷新—消息发送
      */
     public void sendRedisCacheRefreshMessage(String type) {
-        rabbitTemplate.convertAndSend(QueueEnum.QUEUE_REDIS_CACHE_REFRESH.getExchange(), QueueEnum.QUEUE_REDIS_CACHE_REFRESH.getRouteKey(), type);
+        rabbitTemplate.convertAndSend(QueueEnum.QUEUE_REDIS_CACHE_REFRESH.getExchange(), QueueEnum.QUEUE_REDIS_CACHE_REFRESH.getRouteKey(), type, new MessagePostProcessor() {
+            @Override
+            public Message postProcessMessage(Message message) throws AmqpException {
+                message.getMessageProperties().setDeliveryMode(MessageDeliveryMode.PERSISTENT);
+                return message;
+            }
+        });
     }
 
 }