@Override public void start() throws Exception { EventBus eb = vertx.eventBus(); eb.consumer("news-feed"). toObservable(). subscribe(message -> System.out.println("Received news: " + message.body())); System.out.println("Ready!"); } }
@Override public void start() throws Exception { Random random1 = new Random(); EventBus eb = vertx.eventBus(); eb.consumer("heatsensor1"). toObservable(). subscribe(message -> { message.reply(9 + random1.nextInt(5)); }); eb.consumer("heatsensor2"). toObservable(). subscribe(message -> { message.reply(10 + random1.nextInt(3)); }); } }
@Override public void start() throws Exception { EventBus eb = vertx.eventBus(); eb.consumer(ADDRESS) .toObservable() .subscribe(message -> { System.out.println("Received " + message.body()); message.reply("PONG"); }); // Send a message every second vertx.setPeriodic(1000, v -> { eb.rxSend(ADDRESS, "PING") .subscribe(reply -> { System.out.println("Received reply " + reply.body()); }); }); } }
private <T> void register(String address, Function<JsonObject, Single<T>> mapper) { vertx.eventBus().<JsonObject>consumer(address) .toObservable() .subscribe(msg -> { mapper.apply(msg.body()).subscribe(msg::reply, err -> { log.error("Could not perform query", err); msg.fail(throwableToCode(err), throwableToMessage(err, "")); }); }); }
indexerQuerySubscription = vertx.eventBus().<JsonObject>consumer(AddressConstants.INDEXER_QUERY).toObservable() .subscribe(msg -> { JsonArray hits = new JsonArray();
/** * Register consumer for delete messages */ private void registerDelete() { vertx.eventBus().<JsonObject>consumer(AddressConstants.INDEXER_DELETE) .toObservable() .subscribe(msg -> { onDelete(msg.body()).subscribe(() -> { msg.reply(null); }, err -> { log.error("Could not delete document", err); msg.fail(throwableToCode(err), throwableToMessage(err, "")); }); }); }
/** * Register consumer for queries */ private void registerQuery() { vertx.eventBus().<JsonObject>consumer(AddressConstants.INDEXER_QUERY) .toObservable() .subscribe(msg -> { onQuery(msg.body()).subscribe(reply -> { msg.reply(reply); }, err -> { log.error("Could not perform query", err); msg.fail(throwableToCode(err), throwableToMessage(err, "")); }); }); }
@Override public void start() { log.info("Launching importer ..."); store = new RxStore(StoreFactory.createStore(getVertx())); String storagePath = config().getString(ConfigConstants.STORAGE_FILE_PATH); incoming = storagePath + "/incoming"; vertx.eventBus().<JsonObject>localConsumer(AddressConstants.IMPORTER_IMPORT) .toObservable() .onBackpressureBuffer() // unlimited buffer .flatMapCompletable(msg -> { // call onImport() but ignore errors. onImport() will handle errors for us. return onImport(msg).onErrorComplete(); }, false, MAX_PARALLEL_IMPORTS) .subscribe(v -> { // ignore }, err -> { // This is bad. It will unsubscribe the consumer from the eventbus! // Should never happen anyhow. If it does, something else has // completely gone wrong. log.fatal("Could not import file", err); }); vertx.eventBus().localConsumer(AddressConstants.IMPORTER_PAUSE, this::onPause); }
.toObservable() .doOnNext(v -> { queuedAddMessages++;