gpt4 book ai didi

java - 意外的 Vertx 部署实例行为

转载 作者:行者123 更新时间:2023-12-01 09:44:56 24 4
gpt4 key购买 nike

我不明白为什么Verticle部署成功后这段代码中的回调没有执行?

public class VertxApp{
public static void main(String[] args) {
Vertx.vertx().deployVerticle(new MyVerticle(), res -> {
System.out.println(res.result());
});
}
}

MyVerticle 类:

public class MyVerticle extends AbstractVerticle {
@Override
public void start(Future<Void> startFuture) {
System.out.println("MyVerticle started!");
}

@Override
public void stop(Future stopFuture) throws Exception {
System.out.println("MyVerticle stopped!");
}
}

最佳答案

你永远不会说Vert.x您已完成部署。 Vert.x调用您的MyVerticle.start(...)Future<Void> startFuture 。您需要调用startFuture.complete()完成初始化后。 MyVerticle.stop(...) 相同.

class MyVerticle extends AbstractVerticle {
@Override
public void start(Future<Void> startFuture) {
System.out.println("MyVerticle started!");
startFuture.complete();
}

@Override
public void stop(Future stopFuture) throws Exception {
System.out.println("MyVerticle stopped!");
stopFuture.complete();
}
}

或者您可以覆盖 AbstractVerticle.start() (没有 Future )像这样:

class MyVerticle2 extends AbstractVerticle {
@Override
public void start() {
System.out.println("MyVerticle2 started!");
}

@Override
public void stop() throws Exception {
System.out.println("MyVerticle2 stopped!");
}
}

关于java - 意外的 Vertx 部署实例行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38142461/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com