当前位置: 首页 > 知识库问答 >
问题:

使用Quarkus/Martiny在反应式REST GETendpoint中调度阻塞服务

吕文林
2023-03-14

最近,我使用回调结构实现了一个带有Quarkus/Multiny的反应式REST GETendpoint;

使用 Quarkus/Mutiny 将 MyRequestService 连接到 Reactive REST GET endpoint

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

我如何用quar kus/哗变从我的反应式REST GETendpoint调用阻塞服务

共有1个答案

董霖
2023-03-14

我在文档中没有看到快速答案,但结果非常简单;

ServiceResource只是将调用转发给Service。

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

穆特尼在供应商上使用方法get()用于MyJsonResault。该调用阻塞了信号量mMyJsonResult供应商信号量上的获取。接下来,另一个工作线程调用准备好方法(),该方法设置mMyJsonResault并向穆特尼释放信号量mMyJsonResult供应商信号量解除阻塞方法get()。

哗变完全隐藏了故事的反应部分,因此您可以在注册的供应商中阻止方法调用。

 类似资料:
  • 在使用回调结构和Quarkus/Mutiny实现反应式REST GETendpoint并使用阻塞服务检查变量后,我最终使用CompletionStage/CompletableFuture API版本进行了播放; 如何从我的Reactive REST GETendpoint调用CompletionLevel/CompletableFuture API服务

  • 我想知道正常的java API调用(我的意思是没有I/O的方法)是否应该被线程化为“迷你阻塞调用”?是否可以像这样实现Reactive Streams(在返回Publisher之前调用方法): 而不是(在流中调用它) 此验证器仅用于示例。这种方法是否有任何缺点,或者这些方法在返回语句之前应该总是包含在流中?

  • 我有一些微服务,应该可以在WebFlux框架上运行。每台服务器都有自己的带有Mono或Flux的API。我们使用的是Spring支持的MongoDB(Spring数据MongoDB)。 问题是外部阻塞API,我必须在我的系统中使用它。 我有一个解决办法。我可以在专用线程池中封装阻塞API调用,并在CompletableFuture中使用它。 还有别的办法解决我的问题吗?我想,那个全新的Rsocke

  • 我完全混淆了,,。 哪个是阻塞,哪个不是? 我的意思是如果我使用父进程是否等待子进程返回/才继续执行。 如何影响这些调用?

  • 本文向大家介绍node.js回调函数之阻塞调用与非阻塞调用,包括了node.js回调函数之阻塞调用与非阻塞调用的使用技巧和注意事项,需要的朋友参考一下 首先,node.js作为javascript运行平台,它采用了事件驱动和异步编程的方式,通过事件注册和异步函数,开发人员可以提高资源利用率,服务器的性能也能得到改善。其次,对于前端人来说,node.js作为js的运行平台,我们可以通过编写系统级或者

  • 我只是想知道是否可以使用SocketChannel类(带有ByteBuffer)来模拟Java中常规Socket类的阻塞特性。我做了两个测试项目,一个模拟客户端,另一个模拟服务器: 客户代码: 服务器代码: 正如我在评论中所说,运行服务器然后客户端(按该顺序)的结果是不可预测的,因为有时第二个数字可能保持为4或变为6,而更改分别为-1或4(整数字节)。 至于服务器端,我知道我可以让它等待第二个so