Apache Camel не выключается изящно, когда задача процессора в пределах маршрута все еще идетJAVA

Программисты JAVA общаются здесь
Anonymous
Apache Camel не выключается изящно, когда задача процессора в пределах маршрута все еще идет

Сообщение Anonymous »

Я использую Apache Camel с Spring Boot для потребления и обработки больших файлов XML из места SFTP. Маршрут использует .split (). ParallelProcessing () для обработки тысячи элементов параллельно:
Вот упрощенная версия маршрута:

Код: Выделить всё

from("sftp://my-server/path?options...")
.split()
.tokenizeXML("", "")
.streaming()
.parallelProcessing()
.process(myRecordProcessor)
.end();
Shutdown Configuration:

We are using the default shutdown settings from Apache Camel 4.x:

Timeout: 45 seconds

Shutdown Now On Timeout: true

Log Inflight Exchanges On Timeout: true

Shutdown Routes In Reverse Order: true

Отслеживание сообщений в полете работает, как и ожидалось - контекст верблюда отключается чисто через 45 секунд, если сообщение не завершено. Это означает, что файл только частично обрабатывается, а остальные записи теряются.
Вопрос :

Есть ли способ заставить верблюда ждать внутренних параллельных задач внутри A .split (). ParalleleLprocessing () , чтобы закончить, прежде чем лечить обмен Flustight, или задержка, или задержка, или задержка, или задержка, задерживая все, что задерживает все, что задерживает все, что задерживает все, что задерживает все, или задерживает все, что задерживает все, или задерживает все, что задерживает все, или задерживает все, что задерживает все эти, или задерживает все эти /> Любые идеи или рекомендуемые подходы высоко ценится! < /p>

Подробнее здесь: https://stackoverflow.com/questions/796 ... n-the-rout

Вернуться в «JAVA»