Как узнать, когда Apache Camel JDBC с StreamList извлек все строки
У меня есть следующий сценарий: мне нужно получить некоторые данные из базы данных, обработать их и сохранить в некоторых файлах json, а затем создать контрольный файл, чтобы другое приложение могло начать использовать эти файлы json. Поскольку потенциально мы можем иметь миллионы записей в базе данных, нам необходимо использовать параметр StreamList компонента jdbc.
Мой вопрос: есть ли способ узнать, когда поток завершен, чтобы я мог создать контрольный файл? Есть ли лучший подход к этой проблеме? Ниже приведен код:
from("jdbc:...?useHeadersAsParameters=true&outputType=StreamList")
.split(body()).streaming())
.process(new MyProcessor())
.to("seda:aggregate_messages?size=10000&blockWhenFull=true")
.end();
from("seda:aggregate_messages")
.aggregate(header(), new GroupedExchangeAggregationStrategy()).completionSize(1000).completionTimeout(5000))
.toD("file:{{crm.out.dir}}?fileName=${header.INSTITUT_NR}-${date:now:yyyyMMddHHmmssSSS}.json")```