Допустим, я хочу создать Flux и наполнить его данными, получаемыми, например, и БД. Я могу написать так:
public Flux<Integer> getFlux(){
List<Integer> values = new ArrayList<>();
for (int i = 0; i < 10; i++) {
values.add(someLongTimeProcedure());
}
return Flux.fromIterable(values);
}
private Integer someLongTimeProcedure() {
// здесь запрос в БД
return РЕЗУЛЬТАТ_ЗАПРОСА;
}
Но в этом случае Flux будет создан только после то как будет наполнен List. А как сделать так чтобы Flux был создан заранее, а данные "проталкивались" в него по мере их получения?
Важный момент: кол-во элементов конечно. Т.е. в какой-то момент я должен сказать Flux что всё, данных больше не будет.