Как упорядочить задачу для выполнения после завершения всех синглов в коллекции

Я использую транзакции Helidon DBClient и оказался в ситуации, когда я получаю список синглов,List<Single<T>>и хотите выполнить следующее задание только после завершения всех синглов.

Я ищу что-то эквивалентное CompletableFuture.allOf(), но с Single .

Я мог бы сопоставить каждый из одиночных toCompletableFuture(), а затем выполнить CompletableFuture.allOf() сверху, но есть ли лучший способ? Может ли кто-нибудь указать мне в правильном направлении с этим?

--

Почему я получил List<Single>?

У меня есть коллекция POJO, которую я превращаю в именованную вставку .execute() в рамках открытой транзакции. Поскольку я создаю исходную коллекцию .stream() и выполняю вставки с помощью оператора .map(), я получаю список, когда завершаю поток для сбора списка. Ни одна из вставок могла фактически не выполняться. На данный момент я хочу дождаться завершения всех одиночных игр, прежде чем перейти к следующему этапу.

Это то, что я, естественно, сделал бы с CompletableFuture.allOf(), но я не хочу менять диалект API только для этого и придерживаться Single/Multi.

0 ответов

Другие вопросы по тегам