@Override public void subscribe(MessageListener listener, byte[]... channels) { delegate.subscribe(listener, channels); }
@Override public void subscribe(MessageListener listener, String... channels) { delegate.subscribe(listener, serializeMulti(channels)); }
/** * Performs a potentially asynchronous registration of a subscription. * * @return #SubscriptionPresentCondition that can serve as a handle to check whether the subscription is ready. */ private SubscriptionPresentCondition eventuallyPerformSubscription() { SubscriptionPresentCondition condition = null; if (channelMapping.isEmpty()) { condition = new PatternSubscriptionPresentCondition(); connection.pSubscribe(new DispatchMessageListener(), unwrap(patternMapping.keySet())); } else { if (patternMapping.isEmpty()) { condition = new SubscriptionPresentCondition(); } else { // schedule the rest of the subscription subscriptionExecutor.execute(new PatternSubscriptionTask()); condition = new PatternSubscriptionPresentCondition(); } connection.subscribe(new DispatchMessageListener(), unwrap(channelMapping.keySet())); } return condition; }
@Override public void subscribe(MessageListener listener, byte[]... channels) { delegate.subscribe(listener, channels); }
@Override public void subscribe(MessageListener listener, byte[]... channels) { redisConnection.subscribe(listener, channels); }
@Override public void subscribe(MessageListener listener, byte[]... channels) { delegate.subscribe(listener, channels); }
@Override public void subscribe(MessageListener listener, String... channels) { delegate.subscribe(listener, serializeMulti(channels)); }
@Override public void subscribe(MessageListener listener, String... channels) { delegate.subscribe(listener, serializeMulti(channels)); }
@Override protected void doSubscribe(String topic, Consumer<String> consumer) { new Thread(() -> redisTemplate.execute((RedisCallback<Void>) connection -> { connection.subscribe((message, pattern) -> consumer.accept(new String(message.getBody(), StandardCharsets.UTF_8)) , topic.getBytes()); return null; })).start(); }
@Override public void subscribe(String topic, Consumer<String> consumer) { new Thread(() -> redisTemplate.execute((RedisCallback<Void>) connection -> { connection.subscribe((message, pattern) -> { try { String msg = new String(message.getBody(), "UTF-8"); logger.trace("[MQ] subscribe {}:{}", topic, msg); consumer.accept(msg); } catch (Exception e) { logger.error("Redis Subscribe error.", e); } }, topic.getBytes()); return null; })).start(); }
@Override public void subscribe(String topic, Consumer<String> consumer) { RedisConnection connection = null; try { connection = redisTemplate.getConnectionFactory().getConnection(); connection.subscribe((message, pattern) -> { try { String msg = new String(message.getBody(), "UTF-8"); logger.trace("[MQ] subscribe {}:{}", topic, msg); consumer.accept(msg); } catch (Exception e) { e.printStackTrace(); } }, topic.getBytes()); } finally { if (connection != null && !connection.isClosed()) { connection.close(); } } }
/** * Performs a potentially asynchronous registration of a subscription. * * @return #SubscriptionPresentCondition that can serve as a handle to check whether the subscription is ready. */ private SubscriptionPresentCondition eventuallyPerformSubscription() { SubscriptionPresentCondition condition = null; if (channelMapping.isEmpty()) { condition = new PatternSubscriptionPresentCondition(); connection.pSubscribe(new DispatchMessageListener(), unwrap(patternMapping.keySet())); } else { if (patternMapping.isEmpty()) { condition = new SubscriptionPresentCondition(); } else { // schedule the rest of the subscription subscriptionExecutor.execute(new PatternSubscriptionTask()); condition = new PatternSubscriptionPresentCondition(); } connection.subscribe(new DispatchMessageListener(), unwrap(channelMapping.keySet())); } return condition; }
/** * Performs a potentially asynchronous registration of a subscription. * * @return #SubscriptionPresentCondition that can serve as a handle to check whether the subscription is ready. */ private ClRedisContainer.SubscriptionTask.SubscriptionPresentCondition eventuallyPerformSubscription() { ClRedisContainer.SubscriptionTask.SubscriptionPresentCondition condition = null; if (channelMapping.isEmpty()) { condition = new ClRedisContainer.SubscriptionTask.PatternSubscriptionPresentCondition(); connection.pSubscribe(new ClRedisContainer.DispatchMessageListener(), unwrap(patternMapping.keySet())); } else { if (patternMapping.isEmpty()) { condition = new ClRedisContainer.SubscriptionTask.SubscriptionPresentCondition(); } else { // schedule the rest of the subscription subscriptionExecutor.execute(new ClRedisContainer.SubscriptionTask.PatternSubscriptionTask()); condition = new ClRedisContainer.SubscriptionTask.PatternSubscriptionPresentCondition(); } connection.subscribe(new ClRedisContainer.DispatchMessageListener(), unwrap(channelMapping.keySet())); } return condition; }
/** * Performs a potentially asynchronous registration of a subscription. * * @return #SubscriptionPresentCondition that can serve as a handle to check whether the subscription is ready. */ private SubscriptionPresentCondition eventuallyPerformSubscription() { SubscriptionPresentCondition condition = null; if (channelMapping.isEmpty()) { condition = new PatternSubscriptionPresentCondition(); connection.pSubscribe(new DispatchMessageListener(), unwrap(patternMapping.keySet())); } else { if (patternMapping.isEmpty()) { condition = new SubscriptionPresentCondition(); } else { // schedule the rest of the subscription subscriptionExecutor.execute(new PatternSubscriptionTask()); condition = new PatternSubscriptionPresentCondition(); } connection.subscribe(new DispatchMessageListener(), unwrap(channelMapping.keySet())); } return condition; }