Развертывание нескольких версий параллельно - PullRequest
0 голосов
/ 04 июня 2018

Я учусь Vertx.io и RxJava2.Чего я хочу добиться, так это развить некоторые вертикали параллельно.Вот что я пытаюсь сделать:

...
public static void main(String[] args) {
  log = LoggerFactory.getLogger(TheMainApp.class);
  VertxOptions vertxOptions = new VertxOptions();
  Vertx vertx = Vertx.vertx(vertxOptions);

  try {
    JsonObject config = getPropertyFile(args);
    Flowable<Verticle> verticlesToDeploy = Flowable
        .fromArray(new Verticle[] { new Verticle1(), new Verticle2(), new Verticle3(), ..., new VerticleN() });
    verticlesToDeploy.flatMap(verticle -> {
    return RxHelper.deployVerticle(vertx, verticle, new DeploymentOptions().setConfig(config))
        .subscribeOn(Schedulers.io()).doOnError(err -> {
            log.error(err.getCause());
            throw new RuntimeException(err);
        }).doAfterSuccess(ok -> {
            log.info("Verticle {} deployed.", ok);
        }).toFlowable();
    });
  } catch (CompositeException | IOException e) {
    log.error("Deployment interrupted.");
    System.out.println(e.getMessage());
    vertx.close();
  }
}
...

Но это не работает.Вертикаль не развернута.Чего мне не хватает?

1 Ответ

0 голосов
/ 04 июня 2018

После .flatMap вы не используете полученную наблюдаемую.Поскольку код вызывается в функции main, вам, вероятно, нужно добавить .blockingSubscribe()

...