如何列出所有正在收听Vertex Event Bus上地址的消费者?

发布于 2025-01-17 11:20:30 字数 494 浏览 4 评论 0原文

我有一个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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

却一份温柔 2025-01-24 11:20:30

至于第一个问题,当 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() returns true inside unregister 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 after unregister 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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文