use of org.springframework.data.redis.listener.PatternTopic in project rdbcache by rdbcache.
the class RedisConfig method container.
@Bean
RedisMessageListenerContainer container() {
RedisMessageListenerContainer container = new RedisMessageListenerContainer();
container.setConnectionFactory(redisConnectionFactory());
container.addMessageListener(listenerAdapter(), new PatternTopic("__key*__:expired"));
return container;
}
use of org.springframework.data.redis.listener.PatternTopic in project camel by apache.
the class RedisConsumer method toTopics.
private Collection<Topic> toTopics(String channels) {
String[] channelsArrays = channels.split(",");
List<Topic> topics = new ArrayList<>();
for (String channel : channelsArrays) {
String name = channel.trim();
if (Command.PSUBSCRIBE.equals(redisConfiguration.getCommand())) {
topics.add(new PatternTopic(name));
} else if (Command.SUBSCRIBE.equals(redisConfiguration.getCommand())) {
topics.add(new ChannelTopic(name));
} else {
throw new IllegalArgumentException("Unsupported Command " + redisConfiguration.getCommand());
}
}
return topics;
}
use of org.springframework.data.redis.listener.PatternTopic in project spring-session by spring-projects.
the class RedisHttpSessionConfiguration method redisMessageListenerContainer.
@Bean
public RedisMessageListenerContainer redisMessageListenerContainer() {
RedisMessageListenerContainer container = new RedisMessageListenerContainer();
container.setConnectionFactory(this.redisConnectionFactory);
if (this.redisTaskExecutor != null) {
container.setTaskExecutor(this.redisTaskExecutor);
}
if (this.redisSubscriptionExecutor != null) {
container.setSubscriptionExecutor(this.redisSubscriptionExecutor);
}
container.addMessageListener(sessionRepository(), Arrays.asList(new PatternTopic("__keyevent@*:del"), new PatternTopic("__keyevent@*:expired")));
container.addMessageListener(sessionRepository(), Collections.singletonList(new PatternTopic(sessionRepository().getSessionCreatedChannelPrefix() + "*")));
return container;
}
use of org.springframework.data.redis.listener.PatternTopic in project spring-integration by spring-projects.
the class RedisInboundChannelAdapter method onInit.
@Override
protected void onInit() {
super.onInit();
boolean hasTopics = false;
if (this.topics != null) {
Assert.noNullElements(this.topics, "'topics' may not contain null elements.");
hasTopics = true;
}
boolean hasPatterns = false;
if (this.topicPatterns != null) {
Assert.noNullElements(this.topicPatterns, "'topicPatterns' may not contain null elements.");
hasPatterns = true;
}
Assert.state(hasTopics || hasPatterns, "at least one topic or topic pattern is required for subscription.");
if (this.messageConverter instanceof BeanFactoryAware) {
((BeanFactoryAware) this.messageConverter).setBeanFactory(this.getBeanFactory());
}
MessageListenerDelegate delegate = new MessageListenerDelegate();
MessageListenerAdapter adapter = new MessageListenerAdapter(delegate);
adapter.setSerializer(this.serializer);
List<Topic> topicList = new ArrayList<Topic>();
if (hasTopics) {
for (String topic : this.topics) {
topicList.add(new ChannelTopic(topic));
}
}
if (hasPatterns) {
for (String pattern : this.topicPatterns) {
topicList.add(new PatternTopic(pattern));
}
}
adapter.afterPropertiesSet();
this.container.addMessageListener(adapter, topicList);
this.container.afterPropertiesSet();
}
Aggregations