Spring Результат кэширования WebFlux Flux и повторное его использованиеJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Spring Результат кэширования WebFlux Flux и повторное его использование

Сообщение Anonymous »


У меня есть вариант использования, когда мне нужно кэшировать ответ потока и использовать его повторно

Например. здесь invokeEndpoint вызывает внешнюю конечную точку для получения ответа. Как только я получу ответ, мне нужно отправить исходный полученный ответ и агрегироватьd ответ.

В приведенном ниже коде агрегатный метод также выполняет тот же вызов конечной точки, чего я пытаюсь избежать, поскольку запрос требует больших усилий для получения ответа.

Я пробовал использовать cache и share для данных, но, похоже, это не работает, я вижу, что выполняются избыточные вызовы чего я стараюсь избегать.

private Flux getResponse(List Requests){ Данные Flux = Flux.fromIterable(requests) .flatMap(this::invokeEndpoint, 10); // .делиться(); // не повезло // .кэш(); // не повезло return Flux.concat(данные, агрегат(данные)); } частный агрегат Mono (Flux res) { return res.reduce((a, b) -> a + b); //избыточный вызов } Документация не очень помогает, есть идеи, как мы можем кэшировать и повторно использовать Flux?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»