From 04c03d7ab7231eeb75683183460eb538c64846ac Mon Sep 17 00:00:00 2001
From: 疯狂的狮子li <15040126243@163.com>
Date: 星期五, 03 九月 2021 16:21:50 +0800
Subject: [PATCH] add RedisCache 工具类 增加 发布订阅工具

---
 ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java |   36 +++++++++++++++++++++++++++++++++++-
 1 files changed, 35 insertions(+), 1 deletions(-)

diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java
index f46a215..0019761 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java
@@ -5,8 +5,12 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
-import java.util.*;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 import java.util.concurrent.TimeUnit;
+import java.util.function.Consumer;
 
 /**
  * spring redis 宸ュ叿绫�
@@ -21,6 +25,36 @@
 	private RedissonClient redissonClient;
 
 	/**
+	 * 鍙戝竷閫氶亾娑堟伅
+	 *
+	 * @param channelKey 閫氶亾key
+	 * @param msg 鍙戦�佹暟鎹�
+	 * @param consumer 鑷畾涔夊鐞�
+	 */
+	public <T> void publish(String channelKey, T msg, Consumer consumer) {
+		RTopic topic = redissonClient.getTopic(channelKey);
+		topic.publish(msg);
+		consumer.accept(msg);
+	}
+
+	public <T> void publish(String channelKey, T msg) {
+		RTopic topic = redissonClient.getTopic(channelKey);
+		topic.publish(msg);
+	}
+
+	/**
+	 * 璁㈤槄閫氶亾鎺ユ敹娑堟伅
+	 *
+	 * @param channelKey 閫氶亾key
+	 * @param clazz 娑堟伅绫诲瀷
+	 * @param consumer 鑷畾涔夊鐞�
+	 */
+	public <T> void subscribe(String channelKey, Class<T> clazz, Consumer consumer) {
+		RTopic topic = redissonClient.getTopic(channelKey);
+		topic.addListener(clazz, (channel, msg) -> consumer.accept(msg));
+	}
+
+	/**
 	 * 缂撳瓨鍩烘湰鐨勫璞★紝Integer銆丼tring銆佸疄浣撶被绛�
 	 *
 	 * @param key   缂撳瓨鐨勯敭鍊�

--
Gitblit v1.9.3