我似乎无法使VertX Sync正常工作。我只是没有从光纤内部调用'方法。每次例外
在我的垂直......
public class CVEVerticle extends SyncVerticle {
private MongoClient mongo;
@Override
@Suspendable
public void start(Future<Void> fut) {
mongo = MongoClient.createShared(vertx, config());
Router router = Router.router(vertx);
router.get("/api/processStats").handler(Sync.fiberHandler(this::processStats));
vertx.createHttpServer().requestHandler(router::accept).listen(
// Retrieve the port from the configuration, default to 8080.
config().getInteger("http.port", 8084), result -> {
if (result.succeeded()) {
fut.complete();
} else {
fut.fail(result.cause());
}
});
}
@Suspendable
public void processStats(RoutingContext routingContext) {
// do some stuff
Sync.awaitResult(h -> process("test", h));
}
的pom.xml
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-sync</artifactId>
<version>3.5.0</version>
</dependency>
不确定为什么它不起作用,我在启动胖罐时在-javaagent中传入了quasar-core jar。有什么想法吗?
欢呼声 马丁
答案 0 :(得分:0)
您也可以在SyncVerticle.start(Future)
方法中隐藏代码。改为覆盖SyncVerticle.start()
。
有关详细信息,请参阅Vertx-Sync documentation (SyncVerticle)。