Я определил завершенную будущую задачу runasync () в цикле foreach.
У меня есть требование вставлять записи в nosql db, и мне нужно обновить те же вставленные записи, что и «обработанные» в sql db (перенос данных изsqldb DB2 для nosql mongodb).
Чтобы добиться этого, я определил процесс вставки монго в runasyn () и функцию обновления данных, обрабатываемых в db2, в thenAccept () (после проверки фрагмента кода)
Итак, проблема в том,после каждой вставки записи в монго я сохраняю вставленную запись в списке и пытаюсь обновить весь список в db2 за один снимок, но это не так, для каждой вставки в монго она нажимает db2 для каждого обновления записи, но это неосуществимый подходпри обработке тысяч записей.Я ожидаю, что первым получу список вставленных в монго записей и обновлю этот список как обработанный в db2 за один раз.Есть ли возможность для такого подхода?(Я знаю, что и вставка Монго, и обновление db2 определены в цикле foreach, но я хочу, чтобы Монго завершил вставку для всех записей, затем необходимо обновить db2 для всего списка вставленных Монго за один раз) или если я смог вернуть список вставленных записей из mongoProcess по крайней мере.
Фрагмент кода:
unprocessedList.foreach(entry-> {
Completablefuture <Void> cf= Completablefuture.runAsync(() -> {
mongoHelper.processInMongo(entry, getObj(entry)) } , executor). thenAccept (
updateInDb2 ( entryList)) });