private Boolean connectToServer(final Server s, final PrimeConnectionListener listener) {
        int tryNum = 0;
        Exception lastException = null;
        totalCounter.increment();
        boolean success = false;
        do {
            try {
                logger.debug("Executing PrimeConnections request to server {} with path {}, tryNum={}",
                	s, primeConnectionsURIPath, tryNum);
                success = connector.connect(s, primeConnectionsURIPath);
                successCounter.increment();
                lastException = null;
                break;
            } catch (Exception e) {
                // It does not really matter if there was an exception,
                // the goal here is to attempt "priming/opening" the route
                // in ec2 .. actual http results do not matter
                logger.debug("Error connecting to server: {}", e.getMessage());
                lastException = e;
                sleepBeforeRetry(tryNum);
            } 
            logger.debug("server:{}, result={}, tryNum={}, maxRetries={}", s, success, tryNum, maxRetries);
            tryNum++;
        } while (!success && (tryNum <= maxRetries));
        // set the alive flag so that it can be used by load balancers
        if (listener != null) {
            try {
                listener.primeCompleted(s, lastException);
            } catch (Exception e) {
                logger.error("Error calling PrimeComplete listener for server '{}'", s, e);
            }
        }
        logger.debug("Either done, or quitting server:{}, result={}, tryNum={}, maxRetries={}", 
        	s, success, tryNum, maxRetries);
        return success;
    }
Prime servers asynchronously.

@param servers
@param listener
ribbon-loadbalancer/src/main/java/com/netflix/client/PrimeConnections.java