Компонент Apache camel ftp - уведомление об успешной передаче

Мы находимся в процессе создания Java-приложения с помощью Camel для передачи файлов между двумя FTP-серверами. Есть ли способ получить уведомление об успешной передаче файла? Нам не разрешено использовать решение JMS для создания приложения.


person kallada    schedule 20.11.2014    source источник
comment
В маршруте может быть несколько вызовов to. Я не знаю, какой механизм уведомления вы имеете в виду... если не JMS, то, возможно, веб-вызов? .to("ftp:...").to("http:...") Или, может быть, вы хотите, чтобы он отправил электронное письмо? .to("ftp:...").to("smtp:...") Или, может быть, вы хотите использовать событие SEDA .to("ftp:...").to("seda:..."). Думаю, вы поняли.   -  person Ray    schedule 20.11.2014
comment
@Ray Спасибо за быстрый ответ. Чтобы добавить ясности, общий процесс будет включать 1. Считывание с удаленного FTP местоположения, при успешном чтении переименуйте его и переместите в другую папку 2. Добавьте прослушку для выполнения некоторой обработки 3. Запишите файл на другой удаленный FTP место нахождения. Можно ли получить уведомление об успешном написании/переводе?   -  person kallada    schedule 20.11.2014
comment
Я знаю, что вам нужно это уведомление по деловым причинам. Вам нужно, чтобы это было сообщено comeone или просто зарегистрируйте это. Что вы делаете с уведомлением о завершении. Ваш ответ на это поможет нам улучшить ответы, которые мы пытаемся дать   -  person Naveen Raj    schedule 22.11.2014
comment
@NaveenRaj Да, навин, мне нужно отслеживать все успешные переводы. Это должно быть достигнуто без использования какого-либо решения JMS. Просто регистрации может быть недостаточно для меня. В идеале я ищу какой-то флаг успеха с целевого FTP-сервера.   -  person kallada    schedule 23.11.2014


Ответы (1)


Я надеюсь, что вы могли бы создать другой маршрут и использовать seda/vm в качестве конечной точки. Эту конечную точку нужно вызывать после конечной точки ftp.

<route id="MainRoute">
<from uri="ftp:RemoteLocation"/> 
<from uri="seda:Retry"/>
<to uri="seda:MyLog"/>
<!--Your Main Processing logic -->
</route>

<route id="Notification-processor">
<from uri="seda:MyLog"/>
<!--Your Logging/Notification Processing logic -->
</route>

В приведенном выше сценарии обработчика уведомлений вы можете иметь свою пользовательскую активность уведомлений/журналов. Это ваша настраиваемая логика уведомлений. Если вам нужно уведомлять об аномалиях, вы можете иметь конечную точку в обработчике уведомлений для отправки уведомления.

Вам нужно написать логику, чтобы проверить, завершено ли сообщение, если нет, вы можете вызвать bean-компонент в обработчике уведомлений, который может иметь динамический маршрут для извлечения определенного файла из местоположения ftp и его повторной обработки. Как ниже

<route id="Notification-processor">
<from uri="seda:MyLog"/>
<!--Anomaly checker  -->
<to uri="seda:Retry"/>
<!--Your Logging/Notification Processing logic -->
</route>
person Naveen Raj    schedule 23.11.2014