У меня есть Flowable, который генерирует события, которые должны быть обработаны дорогостоящей операцией, которая ожидает массивы элементов:
Flowable<T> src
void expensiveOp(List<T> batch)
Кроме использования постоянного окна, я хотел бы указать окно max элементов, которые заполняются, когда нисходящий поток занят, а когда он заполнен, только обратные давления:
int maxSize = 1024
src.dynamicWindow(maxSize).subscribe(expensiveOp)
Поэтому размер окна не должен быть постоянным или элементным, а зависеть от обратного давления.Буфер должен быть очищен, когда подписчик готов обработать следующий элемент.
Какой перегруженный метод мне не хватает?
Возможными расширениями могут быть параметр minSize и механизм повторных попыток, который повторяет попытку с помощьюувеличенное окно.