From 9b0938e0d6f60a18be1f573e74c10eda14d1742b Mon Sep 17 00:00:00 2001
From: 疯狂的狮子Li <15040126243@163.com>
Date: 星期二, 14 十一月 2023 17:02:51 +0800
Subject: [PATCH] fix 修复 延迟队列在投递消息未到达时间的时候 服务死机导致重启收不到消息

---
 ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/queue/DelayedQueueController.java |    4 +++-
 ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/utils/QueueUtils.java         |    6 +++++-
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/utils/QueueUtils.java b/ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/utils/QueueUtils.java
index 67ce552..4587e64 100644
--- a/ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/utils/QueueUtils.java
+++ b/ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/utils/QueueUtils.java
@@ -224,8 +224,12 @@
     /**
      * 璁㈤槄闃诲闃熷垪(鍙闃呮墍鏈夊疄鐜扮被 渚嬪: 寤惰繜 浼樺厛 鏈夌晫 绛�)
      */
-    public static <T> void subscribeBlockingQueue(String queueName, Consumer<T> consumer) {
+    public static <T> void subscribeBlockingQueue(String queueName, Consumer<T> consumer, boolean isDelayed) {
         RBlockingQueue<T> queue = CLIENT.getBlockingQueue(queueName);
+        if (isDelayed) {
+            // 璁㈤槄寤惰繜闃熷垪
+            CLIENT.getDelayedQueue(queue);
+        }
         queue.subscribeOnElements(consumer);
     }
 
diff --git a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/queue/DelayedQueueController.java b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/queue/DelayedQueueController.java
index f9b81c1..fb2aade 100644
--- a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/queue/DelayedQueueController.java
+++ b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/queue/DelayedQueueController.java
@@ -1,5 +1,6 @@
 package org.dromara.demo.controller.queue;
 
+import cn.dev33.satoken.annotation.SaIgnore;
 import org.dromara.common.core.domain.R;
 import org.dromara.common.redis.utils.QueueUtils;
 import lombok.RequiredArgsConstructor;
@@ -22,6 +23,7 @@
  * @author Lion Li
  * @version 3.6.0
  */
+@SaIgnore
 @Slf4j
 @RequiredArgsConstructor
 @RestController
@@ -40,7 +42,7 @@
         QueueUtils.subscribeBlockingQueue(queueName, (String orderNum) -> {
             // 瑙傚療鎺ユ敹鏃堕棿
             log.info("閫氶亾: {}, 鏀跺埌鏁版嵁: {}", queueName, orderNum);
-        });
+        }, true);
         return R.ok("鎿嶄綔鎴愬姛");
     }
 

--
Gitblit v1.9.3