如何解决使用 Quarkus/Mutiny 在 Reactive REST GET 端点中调度阻塞服务
最近我使用回调结构实现了一个带有 Quarkus/Mutiny 的 Reactive REST GET 端点;
Connect MyRequestService to Reactive REST GET endpoint with Quarkus/Mutiny
完成后,我想知道如何通过调用阻塞服务来解决这个问题;
如何从我的 Reactive REST GET 端点调用阻塞服务 夸克/叛变
解决方法
我在文档中没有看到快速答案,但结果证明很简单;
ServiceResource 只是将调用转发给 Service。
MyRequestService 创建一个 MyJsonResultSupplier 并使用 item() 方法将其传递给 Mutiny Uni。生成的 Uni 返回给 ServiceResource。
Mutiny 在供应商上使用 get() 方法获取 MyJsonResult。该调用阻塞了信号量 mMyJsonResultSupplierSemaphore 上的获取。接下来,另一个工作线程调用方法 ready(),该方法设置 mMyJsonResult 并向 Mutiny 释放信号量 mMyJsonResultSupplierSemaphore 解锁方法 get()。
Mutiny 完全隐藏了故事的反应性部分,因此您可以只阻止已注册供应商中的方法调用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。