/** * @param retries Number of retries to attempt when we experience retryable connection errors */ public ClientBuilder retries(int retries) { this.reconnectionManager = new BasicReconnectionManager(retries); return this; }
@Override public void handleExponentialBackoff() { handleBackoff(incrAndGetExponentialBackoff()); }
@Override public void handleLinearBackoff() { handleBackoff(incrAndGetLinearBackoff()); }
@VisibleForTesting int incrAndGetLinearBackoff() { exponentialBackoffCount = 0; linearBackoffCount += 1; return calculateLinearBackoffMillis(); }
@VisibleForTesting int incrAndGetExponentialBackoff() { linearBackoffCount = 0; exponentialBackoffCount += 1; return calculateExponentialBackoffMillis(); }
public ClientBuilder() { enableGZip = true; name = "hosebird-client-" + clientNum.getAndIncrement(); ThreadFactory threadFactory = new ThreadFactoryBuilder() .setDaemon(true) .setNameFormat("hosebird-client-io-thread-%d") .build(); executorService = Executors.newSingleThreadExecutor(threadFactory); ThreadFactory rateTrackerThreadFactory = new ThreadFactoryBuilder() .setDaemon(true) .setNameFormat("hosebird-client-rateTracker-thread-%d") .build(); ScheduledExecutorService scheduledExecutor = Executors.newScheduledThreadPool(1, rateTrackerThreadFactory); rateTracker = new BasicRateTracker(30000, 100, true, scheduledExecutor); reconnectionManager = new BasicReconnectionManager(5); socketTimeoutMillis = 60000; connectionTimeoutMillis = 4000; schemeRegistry = SchemeRegistryFactory.createDefault(); }