【发布时间】:2021-10-28 11:49:46
【问题描述】:
所以我正在尝试并行发出 API 请求,但它似乎并没有更快。我做错了吗?这是我的代码。
fun getUserInfo(username: String): Mono<String> {
return webclient
// some config and params
.post()
.bodyToMono(String::class)
.subscribeOn(Schedulers.parallel())
}
fun main(){
val time = measureTimeMillis {
Mono.zip(getUserInfo("doge"), getUserInfo("cheems"), etc...)
.map { user ->listOf(it.t1, it.t2, etc...) }
.block()
}
// give the same amount of time doesn't seems faster
// with and without subscribeOn(Schedulers.parallel())
}
【问题讨论】:
-
您的代码看起来不错。它应该花费与这些请求中最慢的一样多的时间。您的测量结果究竟显示了什么?另外,请注意,当您启动应用程序并发送第一个请求时,WebClient 有一些恒定的初始化时间。
标签: kotlin reactive-programming spring-webflux