Что касается моего предыдущего вопроса Разделение сообщения WebClient потокового потока в массивы JSON, которые я использовал;
myFlux
.window(5)
.flatMap(window -> client
.post()
.body(window, myClass.class)
.exchange()
.flatMap(response -> response.bodyToMono)
)
.subscribe();
Это нормально работает. Однако в медленный день доставка 5 сообщений может занять некоторое время, и window
не будет отправлять ничего, пока window
не заполнится. Поэтому я перешел на windowTimeout(5, Duration.ofSeconds(5))
.
Теперь, если данных нет и Duration
превышено, код распространяет пустой window
, что вызывает отправку пустого массива.
Как мне обнаружить пустой window
и не запустить post
?
window.map(value -> client.post()...syncBody(value))
? Это заглянет в окно Flux, и если там ничего нет, ничего не произойдет. - person Frischling   schedule 05.06.2019