Отключение sftp верблюжьего маршрута после загрузки всех файлов из папки sftp - PullRequest
1 голос
/ 30 сентября 2019

Я разрабатываю приложение для весенней загрузки для загрузки файлов из sftp по верблюжьему маршруту. Вот мой код

from("sftp://username@host/folder")
   .convertBodyTo(File.class)
   .process("processor")
   .routeId(routeId);

Я хочу отключить этот маршрут после загрузки всех файлов из указанной папки sftp. Может кто-нибудь, пожалуйста, помогите мне в этом?

1 Ответ

0 голосов
/ 30 сентября 2019

Компонент FTP реализует Потребитель опроса , поэтому вы можете использовать опцию sendEmptyMessageWhenIdle. Если для этого параметра установлено значение true, то при пустой папке получатель отправляет пустое сообщение, которое затем можно использовать в Маршрутизатор на основе содержимого EIP .

. Для остановки маршрута можно использовать простоепроцессор, ControlBus EIP или любой другой подход, описанный в FAQ - Как мне остановить маршрут с маршрута? .

from("sftp://username@host/folder?sendEmptyMessageWhenIdle=true")
    .routeId(routeId)
    .choice()
        .when(body().isNull())
            .toF("controlbus:route?routeId=%s&action=stop&async=true", routeId)
        .otherwise()
            .convertBodyTo(File.class)
            .process("processor");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...