问题标签 [mutiny]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
576 浏览

java - 如何返回 CompletionStageQuarkus 中的同步和异步?

我有端点,它可以返回同步和异步结果

如何故意返回一些东西,即同步?

0 投票
0 回答
598 浏览

java - 在 Quarkus 中按请求启动后台任务的正确方法

我想知道 Quarkus 中每个请求运行后台任务的良好做法是什么。

像这样的东西:

我希望我可以做一些像 Go 例程这样的事情,我可以为此设置超时并记录错误。我怀疑有人可能会注入一个 vertx 实例并在工作线程池中执行任务,但我不知道如何实现。

0 投票
3 回答
614 浏览

java - 大学如何在 Quarkus 工作

在查看了他们的官方教程开始使用异步指南之后,我试图了解 Uni 在 Quarkus 框架中的行为。在服务方法中,我做了以下更改

然后我测试了 /greeting/{name} 资源,执行根本不是异步的,实际上它在同一个线程中以同步方式执行了所有相关方法。

那么这之间有什么区别

它是如何异步的?请帮助我理解它。

0 投票
0 回答
391 浏览

quarkus - Quarkus/Microprofile REST 客户端不重试失败的调用

更新:在https://github.com/quarkusio/quarkus/issues/17145下创建的问题

使用 Quarkus 1.13.3.Final 我试图在使用 Microprofile REST 客户端的 Quarkus 风格并根据文档找出故障处理:

返回 Uni 时,每个订阅都会调用远程服务。这意味着您可以通过在 Uni 上重新订阅来重新发送请求,或者使用重试 [...]

但是,当我通过返回 a 使请求在另一端失败时,Uni.createFrom().failure(new RuntimeException());客户端只会挂起,直到发生具有预设延迟的设定数量的尝试,但没有迹象表明这些尝试会到达其他服务。远程端点的代码只运行一次。

我对新的 Quarkus Reactive REST Client 和旧的客户端都进行了相同的尝试,每次都使用 Mutiny Uni 作为返回值,设置和不设置最大重试次数、等待时间等。由 Uni 的 .onFailure().retry() API 提供。

REST 客户端:

REST 客户端属性:

在调用方注入和使用 REST 客户端:

远程服务端:

调用者服务不产生任何日志,但从远程服务日志中可以清楚地看出,尽管将重试计数设置为 6,但端点要么只被调用一次,要么可能存在某种我无法做到的缓存在文档中找到任何内容。

0 投票
1 回答
1329 浏览

java - Uni.combine().all().unis() 与 Multi..onItem().transformToMultiAndConcatenate().collect()

在我的 Quarkus 服务中,我需要从外部服务获取结果列表,我发现有两种方法可以实现相同的目标:

第一种方法基于Uni.combine().all()

第二种方法基于Multi..onItem().transformToMultiAndConcatenate().collect()

一开始,我认为这两种方法之间没有任何真正的区别,因为Uni它们是懒惰地评估的,或者Uni.combineMulti.collect我来说就像语法糖一样。但是我还是想问一下有没有区别?特别是性能方面的差异。

使用第一种方法,我正在调试一个错误,当大小parameters超过 25 时它开始给出错误但低于 25 就可以了。因此,我怀疑第一种方法会导致非常高的 QPS 淹没外部服务。但是,我怀疑第二种方法也有助于节流。

0 投票
2 回答
1406 浏览

java - Quarkus Reactive - 名称“security.jaxrs.deny-unannotated-endpoints”的多个匹配属性错误

使用 Quarkus 我在执行时收到以下错误:

引起:java.lang.IllegalArgumentException:名称“security.jaxrs.deny-unannotated-endpoints”属性的多个匹配属性由公共布尔 io.quarkus.resteasy.reactive.common.runtime.JaxRsSecurityConfig.denyJaxRs 和公共布尔匹配io.quarkus.resteasy.runtime.JaxRsSecurityConfig.denyJaxRs。这可能是因为您有一个不兼容的扩展组合,它们都定义了相同的属性(例如,包括反应式和阻塞式数据库扩展)

我的 pom 属性是:

和依赖:

我只是尝试使用 Multi from mutiny 和Server Sent Elements进行流式传输:

0 投票
1 回答
751 浏览

java - 如何直接从 Uni 返回一个值无需将其转换为 CompletableFuture

给出一个上下文,我的类中有两个方法都返回 Uni,其中第一个方法以下列方式依赖于第二个方法

现在在greeting(String name)(第一个)方法中返回我必须使用的 String 值,subscribeAsCompletionStage().get() 否则返回类型将是Uni<Uni<String>>.

我的问题如下

  1. 是一种我可以返回第二种方法的实际结果(包含在 Uni 中的确切值)ioSimulation而不使用subscribeAsCompletionStage().get()if yes 那么我该怎么做的方法?
  2. 这样做有没有更好的办法?比如重构现有的方法。

如果有人有兴趣,可以在这里找到完整的代码

0 投票
1 回答
325 浏览

vert.x - Reactive Quarkus:将 Reactive PanacheORM 与多个数据源一起使用

我正在尝试连接到两个不同的数据库(都具有反应式连接),但我无法为第二个数据库创建连接池并继续使用 Panache。

我尝试使用 Quarkus 文档中的@ReactiveDataSource注释,但我无法为某些实体设置此连接,以通过 Panache 为该特定池执行操作。

示例(类似这样):

应用程序属性

用户实体

UserRepository (这是特定数据源的 Panache 配置应该发生的地方!!)

提前感谢您的帮助。

0 投票
1 回答
206 浏览

java - Quarkus:java.lang.IllegalStateException:找不到频道的订阅者

我正在使用 Quarkus,但命令式进程运行缓慢:

我想通过使用 REST API 从流程中获取更新:

}

到达时出现以下错误:

java.lang.IllegalStateException:SRMSG00027:找不到频道文本的订阅者

链接到Github 代码 (包括 pom 和依赖版本)

知道为什么@Incoming("texto")不被识别吗?

完全错误:

0 投票
1 回答
277 浏览

soap - SOAP + Quarkus 响应式响应:Quarkus 在使用 Mutiny 返回类型时是否支持 XML 解析?

我不知道 Quarkus 是否支持 XML(反)序列化,而响应是反应类型(Uni/Multi)。我使用了 Spring Reactor,在 Reactor 中,响应应该始终是 Mono/Flux,以使整个管道无阻塞,从请求到客户端再到最终响应。这是正确的方法吗?我只看到返回 int/String/List 的示例,从来没有看到 Uni/Multi 作为响应。

我已经稍微修改了官方示例以检查这是可能的,但我没有得到正确的响应。

我的服务:

当我查询 likecurl -X GET http://localhost:8080/45646546546541时,我看到:

我有io.quarkus:quarkus-resteasy-jaxb我的依赖项。

我想要:

  • 通过配置属性配置 XML 解析器功能
  • 能够将 Uni/Multi 转换为 XML