public void onUp(Host host) { HostConnectionPool previous = addHost(host); ; loadBalancer.onUp(host); // This should not be necessary but it's harmless if (previous != null) previous.shutdown(); }
private boolean shutdown(long timeout, TimeUnit unit) throws InterruptedException { if (!isShutdown.compareAndSet(false, true)) return true; long start = System.nanoTime(); boolean success = true; for (HostConnectionPool pool : pools.values()) success &= pool.shutdown(timeout - Cluster.timeSince(start, unit), unit); return success; }
public void onAdd(Host host) { HostConnectionPool previous = addHost(host); ; loadBalancer.onAdd(host); // This should not be necessary, especially since the host is // supposed to be new, but it's safer to make that work correctly // if the even is triggered multiple times. if (previous != null) previous.shutdown(); }
public void onDown(Host host) { loadBalancer.onDown(host); HostConnectionPool pool = pools.remove(host); // This should not be necessary but it's harmless if (pool != null) pool.shutdown(); // If we've remove a host, the loadBalancer is allowed to change his mind on host distances. for (Host h : cluster.getMetadata().allHosts()) { if (!h.getMonitor().isUp()) continue; HostDistance dist = loadBalancer.distance(h); if (dist != HostDistance.IGNORED) { HostConnectionPool p = pools.get(h); if (p == null) addHost(host); else p.hostDistance = dist; } } }
private void removePool(Host host) { HostConnectionPool pool = pools.remove(host); if (pool != null) pool.shutdown(); }
public void onRemove(Host host) { loadBalancer.onRemove(host); HostConnectionPool pool = pools.remove(host); if (pool != null) pool.shutdown(); }
private void shutdown() { if (!isShutdown.compareAndSet(false, true)) return; for (HostConnectionPool pool : pools.values()) pool.shutdown(); }