如何列出所有正在收听Vertex Event Bus上地址的消费者?
我有一个Vert.x程序。我正在创建消息消费者,并将其附加到vertx事件总线上的地址上。在程序的后面,我正在不注册那个消费者。我怎么知道消费者是否未能成功注册?
在Vertex Event Bus上的地址上注册消费者,
MessageConsumer<JsonObject> consumer = vertx.eventBus().consumer("my_channel", eventHandler)
以下代码段显示了我如何在某个时候
consumer.unregister( res -> {
if(res.succeeded()) { System.out.println("consumer deregistered")}
});
我将不注册消费者,所以我的问题是假设我对Vertx事件总线vert.eventbus()
对象有参考。如果上面有任何消费者,我该如何验证它?
I have a vert.x program. I am creating a message consumer and attach it to listen on an address on the vertx event bus . later in the program I am unregistering that consumer . How do I know if the consumer is unregistered successfully ?
following code snippet shows how i register a consumer on an address on vertex event bus
MessageConsumer<JsonObject> consumer = vertx.eventBus().consumer("my_channel", eventHandler)
later after sometime i am unregistering the consumer
consumer.unregister( res -> {
if(res.succeeded()) { System.out.println("consumer deregistered")}
});
so my question is suppose i have reference to an vertx event bus vert.eventBus()
object how can i verify it if there any consumers on it ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
至于第一个问题,当
unregister
处理程序中res.succeeded()
返回true
时,您可以放心地假设消费者已成功取消注册(根据您的例子)。对于第二部分,据我所知,事件总线不维护注册到它的消费者列表,您必须自己维护它。目标是拥有一个地图或其他集合,当您使用
.consumer(...)
方法注册消费者时,可以在其中存储消费者的引用,并在unregister
后删除它们处理程序返回成功。我认为这就是您所指的问题(根据 vertx 首席架构师的建议):https://groups.google.com/g/vertx/c/d70YlHLL7KU?pli=1
As for the first question, you can safely assume consumer is unregistered successfully when
res.succeeded()
returnstrue
insideunregister
handler (as per your example).For the second part, afaik the event bus does not maintain the list of consumers registered to it, you have to maintain it yourself. The goal would be to have a map or some other collection where you store references for consumers when you register them with
.consumer(...)
method and remove them afterunregister
handler returns succeeded.I think this would be the issue you are referring to (with the advice by the lead architect of vertx): https://groups.google.com/g/vertx/c/d70YlHLL7KU?pli=1