static VertxHandler from(Vertx vertx, Event<Object> event, String address) { return new VertxHandler(vertx, event.select(VertxEvent.class, VertxConsumer.Literal.of(address))); }
public void registerConsumers(Vertx vertx, Event<Object> event) { CountDownLatch latch = new CountDownLatch(consumerAddresses.size()); for (String address : consumerAddresses) { MessageConsumer<?> consumer = vertx.eventBus().consumer(address, VertxHandler.from(vertx, event, address)); consumer.completionHandler(ar -> { if (ar.succeeded()) { LOGGER.debug("Sucessfully registered event consumer for {0}", address); latch.countDown(); } else { LOGGER.error("Cannot register event consumer for {0}", ar.cause(), address); } }); } Context context = this.context; if (context == null && vertx != null) { context = vertx.getOrCreateContext(); } long timeout = context != null ? context.config().getLong(CONSUMER_REGISTRATION_TIMEOUT_KEY, DEFAULT_CONSUMER_REGISTRATION_TIMEOUT) : DEFAULT_CONSUMER_REGISTRATION_TIMEOUT; try { if (!latch.await(timeout, TimeUnit.MILLISECONDS)) { throw new IllegalStateException(String.format("Message consumers not registered within %s ms [registered: %s, total: %s]", timeout, latch.getCount(), consumerAddresses.size())); } } catch (InterruptedException e) { Thread.currentThread().interrupt(); throw new RuntimeException(e); } }
public void registerConsumers(Vertx vertx, Event<Object> event) { CountDownLatch latch = new CountDownLatch(consumerAddresses.size()); for (String address : consumerAddresses) { MessageConsumer<?> consumer = vertx.eventBus().consumer(address, VertxHandler.from(vertx, event, address)); consumer.completionHandler(ar -> { if (ar.succeeded()) { LOGGER.debug("Sucessfully registered event consumer for {0}", address); latch.countDown(); } else { LOGGER.error("Cannot register event consumer for {0}", ar.cause(), address); } }); } Context context = this.context; if (context == null && vertx != null) { context = vertx.getOrCreateContext(); } long timeout = context != null ? context.config().getLong(CONSUMER_REGISTRATION_TIMEOUT_KEY, DEFAULT_CONSUMER_REGISTRATION_TIMEOUT) : DEFAULT_CONSUMER_REGISTRATION_TIMEOUT; try { if (!latch.await(timeout, TimeUnit.MILLISECONDS)) { throw new IllegalStateException(String.format("Message consumers not registered within %s ms [registered: %s, total: %s]", timeout, latch.getCount(), consumerAddresses.size())); } } catch (InterruptedException e) { Thread.currentThread().interrupt(); throw new RuntimeException(e); } }
static VertxHandler from(Vertx vertx, Event<Object> event, String address) { return new VertxHandler(vertx, event.select(VertxEvent.class, VertxConsumer.Literal.of(address))); }