如何列出所有正在收听顶点事件总线上的地址的消费者?
How to list all consumers that are listening to an address on a vertex event bus?
我有一个 vert.x 程序。我正在创建一个消息使用者并将其附加到 vertx 事件总线上的地址上。稍后在程序中我将注销该消费者。我怎么知道消费者是否注销成功?
以下代码片段展示了我如何在顶点事件总线上的地址上注册消费者
MessageConsumer<JsonObject> consumer = vertx.eventBus().consumer("my_channel", eventHandler)
一段时间后我取消注册消费者
consumer.unregister( res -> {
if(res.succeeded()) { System.out.println("consumer deregistered")}
});
所以我的问题是,假设我引用了一个 vertx 事件总线 vert.eventBus()
对象,如果上面有任何消费者,我该如何验证它?
至于第一个问题,您可以安全地假设当 res.succeeded()
returns true
在 unregister
处理程序中时消费者已成功取消注册(根据您的示例)。
对于第二部分,afaik事件总线不维护注册到它的消费者列表,你必须自己维护它。目标是拥有一个地图或其他一些集合,当您使用 .consumer(...)
方法注册消费者时,您可以在其中存储消费者的引用,并在 unregister
处理程序 returns 成功后将其删除。
我认为这就是您所指的问题(根据 vertx 首席架构师的建议):https://groups.google.com/g/vertx/c/d70YlHLL7KU?pli=1
我有一个 vert.x 程序。我正在创建一个消息使用者并将其附加到 vertx 事件总线上的地址上。稍后在程序中我将注销该消费者。我怎么知道消费者是否注销成功?
以下代码片段展示了我如何在顶点事件总线上的地址上注册消费者
MessageConsumer<JsonObject> consumer = vertx.eventBus().consumer("my_channel", eventHandler)
一段时间后我取消注册消费者
consumer.unregister( res -> {
if(res.succeeded()) { System.out.println("consumer deregistered")}
});
所以我的问题是,假设我引用了一个 vertx 事件总线 vert.eventBus()
对象,如果上面有任何消费者,我该如何验证它?
至于第一个问题,您可以安全地假设当 res.succeeded()
returns true
在 unregister
处理程序中时消费者已成功取消注册(根据您的示例)。
对于第二部分,afaik事件总线不维护注册到它的消费者列表,你必须自己维护它。目标是拥有一个地图或其他一些集合,当您使用 .consumer(...)
方法注册消费者时,您可以在其中存储消费者的引用,并在 unregister
处理程序 returns 成功后将其删除。
我认为这就是您所指的问题(根据 vertx 首席架构师的建议):https://groups.google.com/g/vertx/c/d70YlHLL7KU?pli=1