private boolean tryToAcquire()

in iep-spring-leader-redis-cluster/src/main/java/com/netflix/iep/leader/redis/RedisClusterLeaderDatabase.java [214:238]


  private boolean tryToAcquire(Jedis client, String key) {
    Transaction transaction = client.multi();
    transaction.set(key, leaderString, leaderParams);
    List<Object> results = transaction.exec();
    if (results == null || results.isEmpty()) {
      return false;
    } else if (results.get(0) == null || !results.get(0).equals("OK")) {
      String data = client.get(key);
      if (data != null && !data.equals(leaderString)) {
        logger.info("Leader for {} was {}", key, data);
      } else {
        logger.error("Failed to acquire the leader key for {}", key);
      }
      return false;
    } else {
      String data = client.get(key);
      if (data == null || !data.equals(leaderString)) {
        logger.warn("Successfully executed acquisition transaction but leader was still {}", data);
        return false;
      } else {
        logger.info("Successfully captured leadership for key {}", key);
        return true;
      }
    }
  }