project-reactor相关内容

如何在工程反应堆中传递线程局部变量

我开始使用项目反应堆。有人知道如何将线程局部变量从一个线程传递到另一个线程吗?我在Hooks.java上看到了一些方法,但不知道推荐的方法是什么。谁能给我一些文档或代码片段告诉我如何做到这一点。谢谢。 推荐答案 我在这个giHub存储库中有一个基于spring-cloud-sleuth实现的工作示例:https://github.com/gumartinm/JavaForFun/tre ..
发布时间:2022-08-22 15:17:53 其他开发

并行创建多个API调用,但不需要等待使用Spring Boot项目反应器的任何其他响应

将给定的Monos压缩到一个新的Mono中,当所有给定的Monos都产生了一个Item时,将完成该Mono,但我想知道,我将并行调用多个API,但没有任何依赖,我希望在那个时候逐个公开可用的响应。 所以请帮忙解决这个问题。我已经使用了Mono.zip,但这是在等待所有响应到达。 推荐答案 只需Flux#merge。对出版商的订阅是迫切的(所有出版商一起订阅): Flux.mer ..
发布时间:2022-08-22 15:13:08 其他开发

如何使用生成返回Mono的包装调用来创建Flux

我有一个例子,我想使用Flos.Generate,因为我不想进行昂贵的阻塞调用,除非/直到订阅者请求它。具体地说,我会多次调用Elasticearch(有效地进行分页),直到没有更多的匹配。我已经使用Iterator中的标准阻塞调用实现了这一点。其中,对生成的lambda块和通量的每次调用都以.subscribeOn(Schedulers.boundedElasti ..

预取在项目反应堆中是什么意思?

我正在使用Project Reader,并且正在使用Flux.flatMapIterable。(我基本上有一个对象A流;对于每个对象A,我将其平面化映射为对象B流,并从中生成一个新的通量。) 我正在尝试了解prefetch设置的作用。在我的例子中,每个对象A都可能被转换为任意数量的对象B(介于0到N之间;N很大)。 我只想了解: 什么是预回迁?它只适用于最初的请求吗?(即,如果我 ..
发布时间:2022-08-22 14:38:39 其他开发

Spring WebFlux文件上传:不支持的媒体类型415,支持分块上传

我在使用Spring的反应性框架处理文件上传时遇到了一些问题。我认为我正在遵循文档,但无法摆脱此415/Unsupported Media Type问题。 我的控制器如下所示(如下面的示例:https://docs.spring.io/spring/docs/current/spring-framework-reference/web-reactive.html#webflux-multip ..
发布时间:2022-08-22 14:17:19 Java开发

使用IntelliJ IDEA调试Spring WebFlux/Reader应用程序

我正在使用IntelliJ Idea创建一个Spring WebFlux/Reader应用程序。IDEA的调试器显示了许多无用的行,如MonoDefer、MonoFlatMap等。有什么方法可以轻松跟踪堆栈吗? 推荐答案 在异步世界中,不幸的是堆栈跟踪失去了很多意义。这里您可以看到一个堆栈,其中显示了组成整个反应链的操作符(包括Spring框架在您的控制器中定义的操作符之上使用的操作符 ..
发布时间:2022-08-22 14:11:55 其他开发

从磁通转换为单声道

如何将带有%1元素的通量转换为单声道? Flux.fromArray(arrayOf(1,2,1,1,1,2)) .distinct() .take(1) 如何将其设置为单声道(%1)? 推荐答案 您可以使用next()而不是take(1)。 这将通过获取第一个发出的项将Flux转换为值Mono,如果通量本 ..
发布时间:2022-08-22 14:04:57 其他开发

Schedulers.boundedElastic似乎使用相同的线程进行处理

根据我对API的理解,使用Schedulers.boundedElastic()或像Schedulers.newBoundedElastic(3,10,&Quot;MyThreadGroup&Quot;);或Schedulers.from Executor(Executor)这样的变体允许在多个线程中处理一个IO操作。 但是,使用以下示例代码的模拟似乎表明,有一个线程/相同的线程在平面映射中 ..
发布时间:2022-04-06 15:55:50 其他开发

如何防止Mono被取消?

我正在尝试将某些内容实现为争用条件。此争用条件必须遵循以下情况: 同时启动两个HTTP调用。 返回成功完成的第一个调用的响应。 处理最后一个调用。(这里最重要的是,我不能丢弃最后一个呼叫,我确实需要处理它的结果:无论它的状态、成功或失败)。 此代码示例是我所实现的最接近的解决方案: Mono monoA = webClient.get() ..