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

如何生成完成工作后将未部署的顶点

茹元魁
2023-03-14

我目前正在开发我的第一个vert.x服务,我对我的部署是如何实现的并不十分有信心。

我有几个垂直点来接受来自其他服务的请求,并将大量工作委托给其他垂直点。我如何可以旋转每个任务的垂直线并在工作完成后将其杀死,或者通过编程方式将垂直线按任务数量放大。

我目前正在启动时生成十个顶点,并使用事件总线将这些任务分布在顶点上。

class MainVerticle : CoroutineVerticle() {

  private val databaseConfig by lazy { config.getJsonObject("migration") }

  override suspend fun start() {
    vertx.deployVerticle(AdministrationVerticle::class.java, DeploymentOptions().setConfig(config))
    vertx.deployVerticle(UpdateVerticle::class.java, DeploymentOptions().setConfig(config))
  }
}
private suspend fun handleRolloutRequest(ctx: RoutingContext) {
  val version = ctx.request().getParam("version")?.toInt() ?: findLatestVersion()
  val systems = findOutdatedSystems(version)

  for (system in systems) {
    vertx.eventBus().send("rollout", system.id, options)
  }

  ctx.response().end()
}
override suspend fun start() {
  client.connectAwait(mqttServerConfig.getInteger("port"), mqttServerConfig.getString("hostname"))

  vertx.eventBus().consumer<String>("rollout") {
    launch(vertx.dispatcher()) {
      // actual rollout
    }
  }
}

共有1个答案

甄胡非
2023-03-14

deployVerticle将回调作为最后一个参数。此回调的结果是部署ID

vertx.deployVerticle("your.class", res -> {
    if (res.succeeded()) {
        String deploymentID = res.result();
        ...
    }
}

从理论上讲,您可以使用它在您的垂直设备完成任务后取消部署它们。

实际上,我会保持它们的数量不变,并在容器级别上进行扩展。

 类似资料:
  • 问题内容: 我有一个相当简单的Angular应用程序,可以在我的开发机上正常运行,但是在部署它后却出现此错误消息(在浏览器控制台中)失败: 除此之外,没有其他消息。页面首次加载时会发生这种情况。 我正在运行ASP.NET MVC5,Angular 1.2RC3,并通过git推送到Azure。 谷歌搜索还没有发现任何有趣的东西。 有什么建议? 编辑: 我正在使用TypeScript,并用该变量定义依

  • 我在Docker有个Jenkins集装箱。 当我成功构建某个东西时,我希望将其部署到一个glassfish docker容器中。 https://docs.oracle.com/cd/e19798-01/821-1757/ghgmi/index.html https://github.com/jenkinsci/postbuildscript-plugin

  • 主功能仅输出1、2和3。为什么run中的Runnable不能同时运行和打印4? 但是,当我改变doWhat函数如下所示,所有的数字1,2,3和4将被打印。

  • Verticle部署是异步的,可能部署完成后才返回。 如果你想要部署完成后通知,您可以部署指定完成处理程序: vertx.deployVerticle("com.mycompany.MyOrderProcessorVerticle", res -> { if (res.succeeded()) { System.out.println("Deployment id is: " + re

  • 我是新的完全未来。我试图为元素列表(即参数)调用并行方法,然后将结果组合起来创建最终响应。我还试图设置50毫秒的超时,以便如果调用不返回50毫秒,我将返回默认值。 到目前为止,我已经尝试过: 但我一直得到错误说: 有人能告诉我我在这里做错了什么吗?如果我走错了方向,请纠正我。 谢谢

  • 这是我尝试过的代码,但我得到以下异常: iText。内核PDFEException:“无法在已刷新的页面上绘制元素。” 我需要在最后添加页码,因为在生成pdf的内容后,我生成了一个目录并将其移动到文档的开头。因此,我只知道生成所有页面后的页码。