@Override public Iterator<Discoverable> iterator() { return serviceDiscovered.iterator(); } }
@Override public Iterator<Discoverable> iterator() { return serviceDiscovered.iterator(); } }
@Override public Boolean call() throws Exception { return discoveryServiceClient.discover(Constants.Service.TRANSACTION).iterator().hasNext(); } }, timeout, TimeUnit.SECONDS, Math.min(timeout, Math.max(10, timeout / 10)), TimeUnit.SECONDS);
@Override public Discoverable pick() { // Reservoir sampling Discoverable result = null; Iterator<Discoverable> itor = serviceDiscovered.iterator(); int count = 0; while (itor.hasNext()) { Discoverable next = itor.next(); if (ThreadLocalRandom.current().nextInt(++count) == 0) { result = next; } } return result; } }
@Override public Boolean call() throws Exception { return discoveryServiceClient.discover(Constants.Service.TRANSACTION).iterator().hasNext(); } }, timeout, TimeUnit.SECONDS, Math.min(timeout, Math.max(10, timeout / 10)), TimeUnit.SECONDS);
/** * Randomly picks a {@link Discoverable} from the given {@link ServiceDiscovered}. * * @param serviceDiscovered the {@link ServiceDiscovered} to pick from * @return a {@link Discoverable} or {@code null} if there is no discoverable available */ @Nullable public static Discoverable pickRandom(ServiceDiscovered serviceDiscovered) { // Reservoir sampling Discoverable result = null; Iterator<Discoverable> itor = serviceDiscovered.iterator(); int count = 0; while (itor.hasNext()) { Discoverable next = itor.next(); if (ThreadLocalRandom.current().nextInt(++count) == 0) { result = next; } } return result; } }
@Override public void onChange(ServiceDiscovered serviceDiscovered) { Iterator<Discoverable> itor = serviceDiscovered.iterator(); if (itor.hasNext()) { completion.set(itor.next()); } } }, Threads.SAME_THREAD_EXECUTOR);
private synchronized int getPort() { int attempts = 0; while (port < 0 && attempts++ < 10) { ServiceDiscovered discovered = discoveryServiceClient.discover(Constants.Service.DATASET_MANAGER); if (!discovered.iterator().hasNext()) { Uninterruptibles.sleepUninterruptibly(1, TimeUnit.SECONDS); continue; } port = discovered.iterator().next().getSocketAddress().getPort(); } return port; }
Iterator<Discoverable> iterator = serviceDiscovered.iterator(); Discoverable result = null; int wSum = 0;