List of usage examples for org.springframework.data.redis.listener RedisMessageListenerContainer setSubscriptionExecutor
public void setSubscriptionExecutor(Executor subscriptionExecutor)
From source file:org.springframework.data.redis.listener.SubscriptionConnectionTests.java
@Test public void testStopMessageListenerContainers() throws Exception { // Grab all 8 connections from the pool. They should be released on // container stop for (int i = 0; i < 8; i++) { RedisMessageListenerContainer container = new RedisMessageListenerContainer(); container.setConnectionFactory(connectionFactory); container.setBeanName("container" + i); container.addMessageListener(new MessageListenerAdapter(handler), Arrays.asList(new ChannelTopic(CHANNEL))); container.setTaskExecutor(new SyncTaskExecutor()); container.setSubscriptionExecutor(new SimpleAsyncTaskExecutor()); container.afterPropertiesSet();//from w w w . java2 s . c o m container.start(); if (connectionFactory instanceof JedisConnectionFactory) { // Need to sleep shortly as jedis cannot deal propery with multiple repsonses within one connection // @see https://github.com/xetorthio/jedis/issues/186 Thread.sleep(100); } container.stop(); containers.add(container); } // verify we can now get a connection from the pool RedisConnection connection = connectionFactory.getConnection(); connection.close(); }
From source file:org.springframework.data.redis.listener.SubscriptionConnectionTests.java
@Test public void testRemoveLastListener() throws Exception { // Grab all 8 connections from the pool MessageListener listener = new MessageListenerAdapter(handler); for (int i = 0; i < 8; i++) { RedisMessageListenerContainer container = new RedisMessageListenerContainer(); container.setConnectionFactory(connectionFactory); container.setBeanName("container" + i); container.addMessageListener(listener, Arrays.asList(new ChannelTopic(CHANNEL))); container.setTaskExecutor(new SyncTaskExecutor()); container.setSubscriptionExecutor(new SimpleAsyncTaskExecutor()); container.afterPropertiesSet();/* ww w.ja va 2 s . c o m*/ container.start(); containers.add(container); } // Removing the sole listener from the container should free up a // connection containers.get(0).removeMessageListener(listener); // verify we can now get a connection from the pool RedisConnection connection = connectionFactory.getConnection(); connection.close(); }
From source file:org.springframework.data.redis.listener.SubscriptionConnectionTests.java
@Test public void testStopListening() throws InterruptedException { // Grab all 8 connections from the pool. MessageListener listener = new MessageListenerAdapter(handler); for (int i = 0; i < 8; i++) { RedisMessageListenerContainer container = new RedisMessageListenerContainer(); container.setConnectionFactory(connectionFactory); container.setBeanName("container" + i); container.addMessageListener(listener, Arrays.asList(new ChannelTopic(CHANNEL))); container.setTaskExecutor(new SyncTaskExecutor()); container.setSubscriptionExecutor(new SimpleAsyncTaskExecutor()); container.afterPropertiesSet();/*from www .j a v a2 s. c o m*/ container.start(); containers.add(container); } // Unsubscribe all listeners from all topics, freeing up a connection containers.get(0).removeMessageListener(null, Arrays.asList(new Topic[] {})); // verify we can now get a connection from the pool RedisConnection connection = connectionFactory.getConnection(); connection.close(); }
From source file:org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration.java
@Bean public RedisMessageListenerContainer springSessionRedisMessageListenerContainer( RedisOperationsSessionRepository sessionRepository) { RedisMessageListenerContainer container = new RedisMessageListenerContainer(); container.setConnectionFactory(this.redisConnectionFactory); if (this.redisTaskExecutor != null) { container.setTaskExecutor(this.redisTaskExecutor); }//from ww w. j a v a 2 s . co m if (this.redisSubscriptionExecutor != null) { container.setSubscriptionExecutor(this.redisSubscriptionExecutor); } container.addMessageListener(sessionRepository, Arrays.asList(new ChannelTopic(sessionRepository.getSessionDeletedChannel()), new ChannelTopic(sessionRepository.getSessionExpiredChannel()))); container.addMessageListener(sessionRepository, Collections .singletonList(new PatternTopic(sessionRepository.getSessionCreatedChannelPrefix() + "*"))); return container; }