当前位置: 首页 > 知识库问答 >
问题:

Vertx-停止verticle实例

潘宸
2023-03-14

我有以下vertx代码:

DeploymentOptions deploymentOptions=new DeploymentOptions();
deploymentOptions.setInstances(2);

我想知道如何停止或杀死集合实例中的一个实例。

谢了。

共有1个答案

萧宏峻
2023-03-14

如果你想缩小顶点,你需要部署一个新的集合,然后取消部署旧的。不过,这有点棘手:

final String[] myId = {""};
vertx.deployVerticle("my.Verticle", new DeploymentOptions().setInstances(2), (h) -> {
            if (h.succeeded()) {
                // This is deployment ID for both. Store it in some holder, because Java
                myId[0] = h.result();
            }
            else {
                System.out.println("CAUSE " + h.cause());
            }
});
// ...
// Here you decide to downscale
vertx.undeploy(myId[0], (h) -> { /* Deploy again with less instances */ });

在实际应用程序中,您可能希望首先部署新的Verticle,然后在它们的完成处理程序中取消部署旧的verticles。但为了清楚起见,我把这部分颠倒了。

 类似资料:
  • 是否有一种方法可以在intellij(或任何其他应用程序/工具)中调试javascript verticle,就像在任何浏览器开发工具上调试它一样?我尝试将调试器添加到代码中,但不起作用,而且我在网上也找不到任何关于它的东西。

  • 实现异步启动 下面是一个示例: public class MyVerticle extends AbstractVerticle { public void start(Future<Void> startFuture) { // Now deploy some other verticle: vertx.deployVerticle("com.foo.OtherVerticl

  • 我希望Javascript中的console.log语句会出现在我启动verticle服务器的终端控制台中,但是,它似乎崩溃了....(当然,在客户机的浏览器上,它会在浏览器的控制台即Firefox中播放--我会在内置的调试器中看到它--所以类似地说,它应该出现在我的终端输出中,因为它是VertX的服务器端代码执行的polygot呈现的javascript代码) 这是bash终端中运行的verti

  • 我正在关注Jenkov关于vertx的教程。这里有两个文件: MyVerticle.java: 和VertxVerticleMain。爪哇: 运行,我看到在Eclipse的控制台中,但不知道如何在中调用。 Jenkov说,当Vert. x关闭并且你的顶点需要停止时,会调用Stop()方法。我如何关闭我的Vert. x并停止这个顶点?我想看到在控制台中。

  • 我是Vert.x的新手,我想实现一个worker verticles池来使用Bonecp进行数据库查询。然而,我对如何“调用”它们工作以及如何在它们之间共享BoneCP连接池有点困惑。 我在Vertx DeploymentManager源代码中看到,方法被同步调用,然后verticle被保存在内存中,直到未部署为止。在方法完成后,在辅助verticle上调用方法的正确方式是什么?如果我部署了许多v

  • 我在vertx文档中看到了下面的语句,我想理解的是verticle在流程完成时自动取消部署,或者我们需要显式调用undeploy方法。 verticles中的自动清理如果您从verticles中创建消费者和生产者,当verticles未部署时,这些消费者和生产者将自动关闭。 谢了。