コード例 #1
0
 /**
  * 订阅一个主题
  *
  * @param channel 主题
  */
 @Override
 public void subscribe(final String channel) {
   if (!status.equals(STATUS.READY)) {
     recover();
     try {
       Thread.sleep(2);
     } catch (InterruptedException e) {
       e.printStackTrace();
     }
   }
   if (!listener.isSubscribed()) {
     throw new RuntimeException("Redis listener unvalidable!");
   }
   try {
     Thread.sleep(1);
   } catch (InterruptedException e) {
     e.printStackTrace();
   }
   try {
     logger.debug("Call listener.subscribe - " + channel);
     listener.subscribe(channel);
   } catch (Exception e) {
     status = STATUS.BROKEN;
     logger.error(e.getMessage(), e);
   }
 }
コード例 #2
0
 private void notifySubscribeListeners(Channel channel, String channelName) {
   for (SubscribeListener listener : this.subscribeListeners) {
     try {
       listener.onSubscribe(channel.getRemoteAddress(), channelName);
     } catch (RuntimeException e) {
       // TODO : log exception
     }
   }
 }
コード例 #3
0
 @Override
 public void unsubscribePattern(String... patterns) {
   if (patterns != null) {
     listener.punsubscribe(patterns);
   }
 }
コード例 #4
0
 @Override
 public void unsubscribe(String... channels) {
   if (channels != null) {
     listener.unsubscribe(channels);
   }
 }