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