我想在Spring WebFlux中使用WebClient来调用一些网址,然后把所有的单声道都放到Flux上。当我调用Flux.block最后,我不能得到结果。
@Test
public void reactiveGetTest() {
long start = System.currentTimeMillis();
List<String> results = new ArrayList<>();
List<Mono<String>> monos = IntStream.range(0, 500)
.boxed()
.map(i -> reactiveGet("https://www.google.com/"))
.collect(Collectors.toList());
Flux.mergeSequential(monos)
.map(results::add)
.blockLast();
System.out.println("result: " + results.size());
System.out.println("total time: " + (System.currentTimeMillis() - start));
}
private Mono<String> reactiveGet(String url) {
return WebClient.create(url)
.get()
.retrieve()
.bodyToMono(String.class);
}
我想得到一张500码的单子,但结果是0码!
您可以使用Flux.collectList()
获取列表中的所有结果:
@Test
public void reactiveGetTest() {
long start = System.currentTimeMillis();
List<Mono<String>> monos = IntStream.range(0, 500)
.boxed()
.map(i -> reactiveGet("https://www.google.com/"))
.collect(Collectors.toList());
List<String> results = Flux.mergeSequential(monos).collectList().block();
System.out.println("result: " + results.size());
System.out.println("total time: " + (System.currentTimeMillis() - start));
}
在Elasticsearch中,您可以执行返回点击的搜索,同时在一个响应中返回与点击分开的聚合结果。这是非常强大和有效的,因为您可以运行查询和多个聚合,并一次获得两个(或其中一个)操作的结果,避免使用简洁和简化的API进行网络往返。 我想执行搜索,当我对聚合有查询时返回点击。但我不确定如何才能做到以上几点? 我正在使用以下查询:
问题内容: 我一直在尝试发送HttpPost请求并获取响应,但是即使我能够建立连接,我仍然无法获得如何获取由请求-响应返回的字符串消息。 对不起,我听起来很幼稚,因为我是Java新手。请帮我。 问题答案: 尝试在您的响应中使用:
我正在使用一个挂起的意图来启动一个闹钟(使用AlarmManager)。我需要不同的结果代码启动的活动,基于两个按钮中的哪一个放在它的用户点击(Snooze或取消)。我怎么得到这个结果?不幸的是,在关闭活动上启动finish()方法之后,没有在父活动中启动onActivityResult()方法。在Android文档中,它指出
问题内容: 我在Python中有一个命令行程序,需要花一些时间才能完成。我想知道完成跑步所需的确切时间。 我看过该模块,但似乎仅适用于少量代码段。我想安排整个节目的时间。 问题答案: Python中最简单的方法: 假设你的程序至少需要十分之一秒才能运行。 输出:
请查看以下使用RestTemplate的controller代码(添加注释): 现在,我正试图通过反应式编程实现同样的目标。我现在使用WebFlux中的WebClient和Mono。但是,我很困惑如何将结果结合起来?看一看下面的代码(在任何地方都使用Mono,其余代码保持不变) 问题1:我们如何整合一切,形成一个Mono对象,并将其作为响应发送出去? 问题2:“CourseInfo CourseI
当Callable返回与条件匹配的结果时,是否有一种方法可以停止Javas ExecuterService? 我有以下算法(代码A): 平均而言,functionB的运行速度是functionA的5倍(在8个内核上)。 这很好,但不完美。在functionA中,someFunction()在找到结果!=null之前平均被调用大约20次。在functionB中,someFunction()总是被调用