Asynchronous vertx垂直实例

Asynchronous vertx垂直实例,asynchronous,vert.x,Asynchronous,Vert.x,我被vertx实例弄糊涂了。第一次看到文档时,我认为实例意味着事件循环线程的数量。 在深入研究源代码(vertx 2.1.2)时,我发现verticle实例意味着事件循环线程组中的一个任务。事件循环线程始终等待选择器并运行任务 然后第一个问题来了: 在vertx中是否需要有verticle实例?因为verticle一个事件循环只运行一次。更准确地说,事件循环线程运行Verticle start方法并将其丢弃,它就像一个条目一样工作,仅此而已 我的第二个问题是: 如何收集多个事件的结果 脚本 使用

我被vertx实例弄糊涂了。第一次看到文档时,我认为实例意味着事件循环线程的数量。
在深入研究源代码(vertx 2.1.2)时,我发现verticle实例意味着事件循环线程组中的一个任务。事件循环线程始终等待选择器并运行任务

然后第一个问题来了: 在vertx中是否需要有verticle实例?因为verticle一个事件循环只运行一次。更准确地说,事件循环线程运行Verticle start方法并将其丢弃,它就像一个条目一样工作,仅此而已

我的第二个问题是: 如何收集多个事件的结果

脚本
  • 使用同一处理程序实例在事件总线上发送多个查询
  • 处理程序等待每个回调和修改标志
  • 如果标志到达threadhold,则执行一些作业
  • 问题 当多个事件回调时,有可能多个事件循环线程将执行处理程序,因此存在一个竞争条件,即作业将运行多次。我怎样才能避免呢

    任何解决方案都将被提及

    在vertx中是否需要有垂直体实例

    不需要。这不是必需的。您不必创建Verticle类的任何实例

    如何收集多个事件的结果

    问题

    当多个事件回调时,有可能多个事件循环线程将执行处理程序,因此存在一个竞争条件,即作业将运行多次。我怎样才能避免呢

    通过事件总线发送的每个查询都将有一个相应的处理程序对象。它们不会共享同一个处理程序实例。对于查询的每个响应,都会调用相应的处理程序对象的handle()方法。因此,在特定的处理程序对象上没有竞争条件的位置