diff --git a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/listener/RedisMessageListenerContainer.java b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/listener/RedisMessageListenerContainer.java index 99e89f3b4..72fe03c15 100644 --- a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/listener/RedisMessageListenerContainer.java +++ b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/listener/RedisMessageListenerContainer.java @@ -18,6 +18,7 @@ package org.springframework.data.keyvalue.redis.listener; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; +import java.util.Collections; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @@ -291,6 +292,17 @@ public class RedisMessageListenerContainer implements InitializingBean, Disposab lazyListen(); } + /** + * Adds a message listener to the (potentially running) container. If the container is running, + * the listener starts receiving (matching) messages as soon as possible. + * + * @param listener + * @param topics + */ + public void addMessageListener(MessageListener listener, Topic topic) { + addMessageListener(listener, Collections.singleton(topic)); + } + private void initMapping(Map> listeners) { // stop the listener if currently running if (isRunning()) {