我是新的网络流量,并无法找到正确的材料,继续执行。
我想发出一个请求并异步地处理响应。在这种情况下,服务调用大约需要8-10毫秒来响应,因此我们发出请求并继续进行其他工作,并在需要进一步处理时寻找响应。
Mono<Map<String,Price>> resp = webClient.post()
.uri("/{type}",isCustomerPricing ? "customer" : "profile")
.body(Mono.just(priceDetailsRequest),PriceDetailsRequest.class)
.retrieve().bodyToMono(customerPriceDetailsType);如何让这个调用在不同的线程上异步执行(我用Schedulers.single/ Scheuldes.parallel尝试了Scheuldes.parallel),但是在调用Mono.block()之前没有看到调用被执行。
我们如何实现?
发布于 2019-01-10 11:08:52
您不需要阻止使用响应。只需指定一个操作符来使用同一链中的响应。下面给出一个例子。
Mono<Map<String,Price>> resp = webClient.post()
.uri("/{type}",isCustomerPricing ? "customer" : "profile")
.body(Mono.just(priceDetailsRequest),PriceDetailsRequest.class)
.retrieve()
.bodyToMono(CustomerPriceDetailsType.class)
.map(processor::responseToDatabaseEntity) // Create a persistable entity from the response
.map(priceRepository::save) // Save the entity to the database
.subscribe(); //This is to ensure that the flux is triggered.或者,您可以提供一个使用者作为subscribe()方法的参数。
https://stackoverflow.com/questions/54117103
复制相似问题