【发布时间】:2020-03-06 13:54:03
【问题描述】:
我有以下代码:
public Flux<Offer> getAllFilteredOffers(Map<String, String> searchParams) {
Flux<ProductProperties> productProperties = productPropertiesService.findProductPropertiesBySearchCriteria(searchParams);
Flux<Product> products = productService.findProductsByPropertyId(productProperties);
Flux<Product> productsByAvailability = productService.getAllProductsByAvailability(products, searchParams);
Flux<Offer> offers = offerRepository.findByPropertiesIds(productsByAvailability);
return offers;
这个方法:
productService.getAllProductsByAvailability(products, searchParams);
看起来像:
public Flux<Product> getAllProductsByAvailability(Flux<Product> products,
Map<String, String> searchParams) {
如何将List<Product> 传递给getAllProductsByAvailability 以保持非阻塞操作?
我读过地图被阻塞,应该避免。
也许是这样的?
Flux
.just(productPropertiesService.findProductPropertiesBySearchCriteria(searchParams))
.flatMap(productProperties -> productService.findProductsByPropertyId(productProperties))
.flatMap(products -> productService.getAllProductsByAvailability(Flux.create(products)?????????, searchParams))
???
我不是 Webflux 方面的专家,目前我正试图弄清楚如何处理以下问题:我有 Flux,但在第二步中,我需要从之前的 Flex 对象中提取一些数据 - 保持非阻塞流。
比你!
【问题讨论】:
标签: spring-boot reactive-programming spring-webflux flux