0

最近我使用回调结构实现了一个带有 Quarkus/Mutiny 的 Reactive REST GET 端点;

使用 Quarkus/Mutiny 将 MyRequestService 连接到反应式 REST GET 端点

完成后,我想知道如何通过调用阻塞服务来解决这个问题;

如何使用 Quarkus/Mutiny 从我的 Reactive REST GET 端点调用阻塞服务

4

1 回答 1

1

我在文档中没有看到快速的答案,但事实证明它非常简单;

在此处输入图像描述

ServiceResource 只是将调用转发给服务。

在此处输入图像描述

MyRequestService 创建一个 MyJsonResultSupplier 并使用 item() 方法将其传递给 Mutiny Uni。生成的 Uni 返回到 ServiceResource。

在此处输入图像描述

Mutiny 在供应商上使用 get() 方法获取 MyJsonResult。在信号量 mMyJsonResultSupplierSemaphore 上获取的调用阻塞。接下来,另一个工作线程调用方法 ready() 设置 mMyJsonResult 并向 Mutiny 释放信号量 mMyJsonResultSupplierSemaphore 解锁方法 get()。

Mutiny 完全隐藏了故事的反应部分,因此您只需阻止注册供应商内的方法调用。

于 2021-04-04T18:26:31.373 回答