List of usage examples for io.vertx.core.eventbus EventBus localConsumer
<T> MessageConsumer<T> localConsumer(String address);
From source file:co.runrightfast.vertx.core.RunRightFastVerticle.java
License:Apache License
/** * * @param <REQ>/*ww w . jav a2 s . co m*/ * @param <RESP> * @param config * @return MessageConsumer */ protected <REQ extends Message, RESP extends Message> MessageConsumerRegistration<REQ, RESP> registerMessageConsumer( @NonNull final MessageConsumerConfig<REQ, RESP> config) { Preconditions.checkState( !messageConsumerRegistrations.containsKey(config.getAddressMessageMapping().getAddress())); final EventBus eventBus = vertx.eventBus(); registerMessageCodecs(config); final String address = config.getAddressMessageMapping().getAddress(); final MessageConsumer<REQ> consumer = config.isLocal() ? eventBus.localConsumer(address) : eventBus.consumer(address); consumer.completionHandler(config.getCompletionHandler() .map(handler -> messageConsumerCompletionHandler(address, Optional.of(handler), config)) .orElseGet(() -> messageConsumerCompletionHandler(address, Optional.empty(), config))); consumer.endHandler(config.getEndHandler() .map(handler -> messageConsumerEndHandler(address, Optional.of(handler), config)) .orElseGet(() -> messageConsumerEndHandler(address, Optional.empty(), config))); config.getExceptionHandler().ifPresent(consumer::exceptionHandler); consumer.handler(messageConsumerHandler(config)); final String processSpecificAddress = config.getAddressMessageMapping().getProcessSpecificAddress(); final MessageConsumer<REQ> processSpecificConsumer = config.isLocal() ? eventBus.localConsumer(processSpecificAddress) : eventBus.consumer(processSpecificAddress); processSpecificConsumer.completionHandler(config.getCompletionHandler().map( handler -> messageConsumerCompletionHandler(processSpecificAddress, Optional.of(handler), config)) .orElseGet( () -> messageConsumerCompletionHandler(processSpecificAddress, Optional.empty(), config))); processSpecificConsumer.endHandler(config.getEndHandler() .map(handler -> messageConsumerEndHandler(processSpecificAddress, Optional.of(handler), config)) .orElseGet(() -> messageConsumerEndHandler(processSpecificAddress, Optional.empty(), config))); config.getExceptionHandler().ifPresent(processSpecificConsumer::exceptionHandler); processSpecificConsumer.handler(messageConsumerHandler(config)); final MessageConsumerRegistration<REQ, RESP> messageConsumerRegistration = MessageConsumerRegistration .<REQ, RESP>builder().messageConsumer(consumer) .processSpecificMessageConsumer(processSpecificConsumer).config(config).build(); messageConsumerRegistrations = ImmutableMap.<String, MessageConsumerRegistration<?, ?>>builder() .putAll(messageConsumerRegistrations).put(config.address(), messageConsumerRegistration).build(); return messageConsumerRegistration; }
From source file:io.helixservice.feature.metrics.MetricsFeature.java
License:Open Source License
private void addEventBusConsumers(Vertx vertx) { EventBus eventBus = vertx.eventBus(); eventBus.localConsumer("metrics.histogram").handler(histogram -> { String[] bodySplit = splitRequest(histogram); metricRegistry.histogram(bodySplit[0]).update(Long.valueOf(bodySplit[1])); });// w w w .j a v a2 s.c o m eventBus.localConsumer("metrics.timer").handler(timer -> { String[] bodySplit = splitRequest(timer); metricRegistry.timer(bodySplit[0]).update(Long.valueOf(bodySplit[1]), TimeUnit.MILLISECONDS); }); eventBus.localConsumer("metrics.counter").handler(timer -> { String[] bodySplit = splitRequest(timer); metricRegistry.counter(bodySplit[0]).inc(Long.valueOf(bodySplit[1])); }); }