gpt4 book ai didi

java - vert.x 等待回复多条消息

转载 作者:搜寻专家 更新时间:2023-10-30 19:58:23 24 4
gpt4 key购买 nike

在 vert.x 中,我可以向另一个 Verticle 发送消息并“异步等待”回复。

问题是:我想向多个 Verticle 发送消息,并创建一个异步处理程序,以便在所有 Verticle 都回复时调用。

这是否可能或是否有更好的设计来实现此功能?

编辑:

假设我有一个 Verticle A,它向 Verticle B、C 和 D 发送消息。每个 Verticle (B,C,D) 对消息执行某些操作并返回 A 一些数据。 Verticle A 然后接收来自 B、C、D 的响应并对所有数据执行某些操作。问题是我发送的每条消息都有一个处理程序(一个用于 A,一个用于 B,一个用于 C),我希望在所有回复到达时调用一个处理程序。

最佳答案

从 Vert.x 3.2 开始,文档解释了 how to coordinate asyncronously使用 FutureCompositeFuture

假设您想通过事件总线进行两次 send 调用,并在两次调用都成功时执行一些操作:

Future<Message> f1 = Future.future();
eventBus.send("first.address", "first message", f1.completer());

Future<Message> f2 = Future.future();
eventBus.send("second.address", "second message", f2.completer());

CompositeFuture.all(f1, f2).setHandler(result -> {
// business as usual
});

最多 6 个 future 可以作为参数传递,或者它们可以作为列表传递。

关于java - vert.x 等待回复多条消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25180866/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com