Я хочу разделить свой поток на пакеты определенного максимального размера, и если этот размер не будет достигнут через некоторое время, закрыть пакет и начать новый. Для этого я попытался использовать окно (количество):
things.window(10)
Однако это ждет, пока не будет получено 10 элементов, чтобы создать новое окно Observable. Если я использую оператор window(timespan, unit, count):
things.window(1, TimeUnit.SECONDS, 10)
Я потеряю все элементы, которые появились после 10-го числа и до завершения временного промежутка.
Мне нужен аналогичный оператор, который вместо ожидания завершения временного промежутка выдает новое окно при достижении счетчика.
things.windowXXX(timespan = 1s, count = 2) : Observable[T]
things: ----o--o--o-----------o----o------->
timespan: [ )[ 1s ][ )[ -->
window 1: -----o-o-|
window 2: -o---------|
window 3: --o-----o-|