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