У меня есть следующий код:
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 <> - поддержание неблокирующего потока.
Than you!