在使用Vertx部署后,如何获取对已部署的Verticle的引用?

Gra*_*min 2 java vert.x

我有一个叫做TestService扩展的服务AbstractVerticle:

public class TestService extends AbstractVerticle {
  @Override
  public void start() throws Exception {
    //Do things
  }
}
Run Code Online (Sandbox Code Playgroud)

然后我使用vertx部署该Verticle,如下所示:

Vertx vertx = Vertx.vertx();
vertx.deployVerticle(TestService.class.getName());
Run Code Online (Sandbox Code Playgroud)

在vertx实例化之后,如何获得对部署的TestService的引用?

Pau*_*pes 8

您应该使用替代方法进行部署:

vertx.deployVerticle(TestService.class.getName(), deployment -> {
  if (deployment.succeeded()) {
    // here is your ID
    String deploymentId = deployment.result();
  } else {
    // deployment failed...
  }
});
Run Code Online (Sandbox Code Playgroud)

如果您只想列出所有已部署的Verticle,那么您只需要请求id列表:

vertx.deploymentIDs()
Run Code Online (Sandbox Code Playgroud)

  • 有没有办法在部署时获得对垂直对象本身的引用?比如:TestService ts = vertx.byId(".."); (4认同)