【问题标题】:Is there any scenario in which a Vert.x MessageConsumer can fail to unregister from the event bus?是否存在 Vert.x MessageConsumer 无法从事件总线注销的情况?
【发布时间】:2021-08-08 05:46:05
【问题描述】:
public void unregisterConsumer(MessageConsumer<Object> mc) {
    mc.unregister(result -> {
        if(result.succeeded())
            return;
        else
            //uh oh
    });
    
}

如果AsyncResult 失败,再次调用unregisterConsumer 是否不明智,也许是vertx.setTimer(5000, id -&gt; unregisterConsumer(mc));

【问题讨论】:

    标签: java vert.x event-bus vertx-eventbus


    【解决方案1】:

    如果 Vert.x 没有集群,那么失败的可能性可以忽略不计(只有在出现错误的情况下才会发生)。

    如果 Vert.x 是集群的,如果底层集群管理器未能删除订阅(例如,如果网络通信丢失),则可能会发生这种情况。

    至于重试,如果您的应用程序动态注册消费者可能是个好主意。否则,您可以忽略失败并让进程终止。集群管理器最终会清理订阅。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-19
      • 2023-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-06
      • 1970-01-01
      相关资源
      最近更新 更多