示例#1
0
  @Override
  public Future<Void> setupMasterEntry(String host, int port) {
    RedisClient masterClient = connectionManager.createClient(host, port);
    masterEntry =
        new ClientConnectionsEntry(
            masterClient,
            config.getMasterConnectionMinimumIdleSize(),
            config.getMasterConnectionPoolSize(),
            config.getSlaveConnectionMinimumIdleSize(),
            config.getSlaveSubscriptionConnectionPoolSize(),
            connectionManager,
            NodeType.MASTER,
            config);
    final Promise<Void> res = connectionManager.newPromise();
    Future<Void> f = writeConnectionHolder.add(masterEntry);
    Future<Void> s = pubSubConnectionHolder.add(masterEntry);
    FutureListener<Void> listener =
        new FutureListener<Void>() {
          AtomicInteger counter = new AtomicInteger(2);

          @Override
          public void operationComplete(Future<Void> future) throws Exception {
            if (!future.isSuccess()) {
              res.setFailure(future.cause());
              return;
            }
            if (counter.decrementAndGet() == 0) {
              res.setSuccess(null);
            }
          }
        };
    f.addListener(listener);
    s.addListener(listener);
    return res;
  }