问题标签 [spring-reactor]
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.
java - 如何将返回`void`的同步方法包装到Mono中?
我正在尝试调整返回返回的 postgresql 存储库deleteById
方法void
Mono<Void>
存储库是我自动装配的服务,我像这样使用它
repository.deleteById(id)
以字符串 id 作为参数
java - 升级到 Spring Boot 2.2 后 Springboot WebFlux 测试失败
我有一些 Springboot 集成测试,它们在 Springboot 2.1 中运行良好,但现在我已经升级到 Springboot 2.2,它们失败了。使用默认的 spring-boot 父依赖管理。一些曾经有效的失败测试就像这个例子一样简单:
在升级之前,此测试按预期通过,但在升级之后,它失败并出现以下错误:
升级后我有很多类似行为的测试。上线失败assertThat(acc.block(), hasSize(0));
这可能是什么原因造成的?
更新
我尝试按照评论中的建议更改测试以使用 StepVerifier 但没有奏效:
错误的结尾刚刚更改为:parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@985b9f6] is not yet refreshed. This is unexpected. Reactor Context is [Context0{}] and name is [stepVerifier ]))
这似乎与使用块相同的问题,但现在使用 StepVerifier。
谢谢。
spring-webclient - 取消信号(关闭连接)可能是什么原因?
在我们应用程序的 Kibana 中,我不断从以下位置看到这行日志org.springframework.web.reactive.function.client.ExchangeFunctions
:
线程是reactor-http-epoll-1
左右。
它可能发生在两种情况下:
- 当连接成功并返回响应时,则无所谓
- 当出于某种未知原因时,10 秒后,连接没有返回任何内容,并且这条线也发生了,并且期间,仅此而已。这似乎是超时但我不确定(因为我的 WebClient 配置中的默认超时是 10 秒)
这可能是什么原因?客户端主动丢弃还是服务器主动拒绝?
第二种情况是否超时?但不是TimeoutException()
事后抛出。
我现在doOnCancel()
登录 WebClient 来处理第二种情况,但后来我注意到有第一种情况,这种doOnCancel()
处理不再有意义,因为它似乎在所有情况下都会发生。
java - 有没有一种简单的方法可以使用 Project Reactor (Java/Spring) 来获取几个 Flux 对象之间的元素交集?
我在 Java 中使用带有 Spring Boot 的 Project Reactor。我想知道是否有一种简单的方法可以使用 Project Reactor 让几个 Flux 对象之间的元素相交而不会阻塞。
谢谢!
spring - Spring AOP 和 Reactor 中的多个有序注释出错
我有这两个注释及其各自的方面:
和
我需要它们井井有条,Cb
被称为最内层和BackupCache
最外层。如果我对两者都下令(使用Cb
order = 10
),则会出现以下错误:
测试重现:
删除其中一个命令可以解决问题,但我需要执行命令。任何人都可以帮忙吗?
spring - 当后端使用 webflux 或简单的 rest 控制器时,web 浏览器有什么不同吗?
假设我们有 2 个休息服务:
// 另一个控制器
这段代码之间客户端的网络浏览器有什么区别吗?
spring-webflux - WebFlux - Reactor Http Epoll 线程
我正在使用 Spring webflux。我将数百个并发请求发送到其余端点。当我检查时,只有 4 个线程被共享来处理所有负载。
这是正常的吗?是否有任何弹簧属性可以增加此计数?
- 反应堆-http-epoll-1
- 反应堆-http-epoll-2
- 反应堆-http-epoll-3
- 反应堆-http-epoll-4
我明白我可以使用反应器调度程序来卸载阻塞工作。我的问题更多 - 这 4 个线程是什么,我们在哪里有这个配置?
spring-webflux - 转换与转换延迟
项目反应堆通量之间的区别是什么transform
。transformDeferred
好的例子会有所帮助。
https://projectreactor.io/docs/core/release/reference/index.html#advanced-mutualizing-operator-usage
spring-webflux - 生成将函数应用于 Reactor Flux 的两个连续元素的元素
我有一个 Flux 会发出一些元素,为了简单起见假设一个Flux<String>
-> "1", "2", "3", "n"
我需要做的是获取两个连续的元素并应用一个操作(例如 flatMap),它将从中生成一些元素。再次假设该函数将第一个元素与第二个元素连接起来,将第二个元素与第一个元素连接起来:
f(x,y) -> "xy", "yx"
所以从原始 Flux 发出的最终序列应该是:
"12" - "21" - "23" - "32" - "3n" - "n3"
怎么可能做到这一点?
java - 溪流> 到通量在弹簧反应器中
可以说我有ProductSupplier
哪些允许通过 id 获取产品。但它有限制,每个请求您只能加载一种产品。
现在我在写ProductService
我需要按 id 获取产品列表