From 04c03d7ab7231eeb75683183460eb538c64846ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Fri, 3 Sep 2021 16:21:50 +0800 Subject: [PATCH] =?UTF-8?q?add=20RedisCache=20=E5=B7=A5=E5=85=B7=E7=B1=BB?= =?UTF-8?q?=20=E5=A2=9E=E5=8A=A0=20=E5=8F=91=E5=B8=83=E8=AE=A2=E9=98=85?= =?UTF-8?q?=E5=B7=A5=E5=85=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi/common/core/redis/RedisCache.java | 36 ++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) 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 f46a21576..0019761c8 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.redisson.api.*; 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 工具类 @@ -20,6 +24,36 @@ public class RedisCache { @Autowired private RedissonClient redissonClient; + /** + * 发布通道消息 + * + * @param channelKey 通道key + * @param msg 发送数据 + * @param consumer 自定义处理 + */ + public void publish(String channelKey, T msg, Consumer consumer) { + RTopic topic = redissonClient.getTopic(channelKey); + topic.publish(msg); + consumer.accept(msg); + } + + public void publish(String channelKey, T msg) { + RTopic topic = redissonClient.getTopic(channelKey); + topic.publish(msg); + } + + /** + * 订阅通道接收消息 + * + * @param channelKey 通道key + * @param clazz 消息类型 + * @param consumer 自定义处理 + */ + public void subscribe(String channelKey, Class clazz, Consumer consumer) { + RTopic topic = redissonClient.getTopic(channelKey); + topic.addListener(clazz, (channel, msg) -> consumer.accept(msg)); + } + /** * 缓存基本的对象,Integer、String、实体类等 *