我正在研究Vertx.io
和RxJava2
。我想要实现的是以并行方式完全部署一些Verticle。这就是我想要做的事情:
...
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();
}
}
...
但它不起作用。没有部署Verticle。我错过了什么?
答案 0 :(得分:0)
在.flatMap
之后,您不会使用生成的观察结果。由于代码是在main
函数中调用的,因此您可能需要添加.blockingSubscribe()