From f91c1c00d1203397241ceac0fecc111c64647e95 Mon Sep 17 00:00:00 2001 From: gongdewei Date: Tue, 25 May 2021 16:34:15 +0800 Subject: [PATCH] add containsTopic method --- .../channel/server/message/MessageExchangeService.java | 7 +++++++ .../server/message/impl/MessageExchangeServiceImpl.java | 5 +++++ .../server/redis/RedisMessageExchangeServiceImpl.java | 5 +++++ 3 files changed, 17 insertions(+) diff --git a/channel/channel-server/src/main/java/com/alibaba/arthas/channel/server/message/MessageExchangeService.java b/channel/channel-server/src/main/java/com/alibaba/arthas/channel/server/message/MessageExchangeService.java index a66b1dcc7..51f3f3615 100644 --- a/channel/channel-server/src/main/java/com/alibaba/arthas/channel/server/message/MessageExchangeService.java +++ b/channel/channel-server/src/main/java/com/alibaba/arthas/channel/server/message/MessageExchangeService.java @@ -31,6 +31,13 @@ public interface MessageExchangeService { void subscribe(Topic topic, int timeout, MessageHandler messageHandler) throws MessageExchangeException; + /** + * Whether exists the specify topic + * @param topic + * @return + */ + boolean containsTopic(Topic topic); + interface MessageHandler { /** * handle message diff --git a/channel/channel-server/src/main/java/com/alibaba/arthas/channel/server/message/impl/MessageExchangeServiceImpl.java b/channel/channel-server/src/main/java/com/alibaba/arthas/channel/server/message/impl/MessageExchangeServiceImpl.java index 0d0a40631..3f47c715a 100644 --- a/channel/channel-server/src/main/java/com/alibaba/arthas/channel/server/message/impl/MessageExchangeServiceImpl.java +++ b/channel/channel-server/src/main/java/com/alibaba/arthas/channel/server/message/impl/MessageExchangeServiceImpl.java @@ -101,6 +101,11 @@ public class MessageExchangeServiceImpl implements MessageExchangeService { } } + @Override + public boolean containsTopic(Topic topic) { + return topicMap.containsKey(topic); + } + @Override public void pushMessage(Topic topic, byte[] messageBytes) throws MessageExchangeException { TopicData topicData = topicMap.get(topic); diff --git a/channel/channel-server/src/main/java/com/alibaba/arthas/channel/server/redis/RedisMessageExchangeServiceImpl.java b/channel/channel-server/src/main/java/com/alibaba/arthas/channel/server/redis/RedisMessageExchangeServiceImpl.java index a10c7b1ae..1c65a9f99 100644 --- a/channel/channel-server/src/main/java/com/alibaba/arthas/channel/server/redis/RedisMessageExchangeServiceImpl.java +++ b/channel/channel-server/src/main/java/com/alibaba/arthas/channel/server/redis/RedisMessageExchangeServiceImpl.java @@ -79,6 +79,11 @@ public class RedisMessageExchangeServiceImpl implements MessageExchangeService { } } + @Override + public boolean containsTopic(Topic topic) { + return redisTemplate.hasKey(topic.getTopic()).block(); + } + @Override public void pushMessage(Topic topic, byte[] messageBytes) throws MessageExchangeException { String key = topic.getTopic();