Я новичок в Camel FTP и нуждаюсь в небольшой помощи для выполнения задачи.
Я работаю над требованием загружать пару отчетов по FTP два раза в месяц и загружать их в SharePoint.
Я настроил FTP-маршрут с фильтром для получения необходимых файлов и политикой маршрута, используя CronScheduledRoutePolicy, чтобы запускать этот маршрут два раза в месяц. Пожалуйста, смотрите ниже конфигурации.
<!-- FileName filter for ACE Report download from CSREPORT folder -->
<bean id="aceReportFileNameFilter" class="com.xyz.ACEReportFileNameFilter" />
<bean id="aceReportDownloadStartPolicy"
class="org.apache.camel.routepolicy.quartz2.CronScheduledRoutePolicy">
<!-- start every 2min from monday to saturday - TESTING -->
<property name="routeStartTime" value="0 0/2 * ? * 1-6 *" />
<!-- Run every 2nd and 23rd of the month at 1AM - PRODUCTION -->
<!-- <property name="routeStartTime" value="0 0 1 2,23 * ? *" /> -->
</bean>
<routeContext id="aceReportDownload" xmlns="http://camel.apache.org/schema/spring">
<route autoStartup="false" id="CSReportFtp" routePolicyRef="aceReportDownloadStartPolicy">
<from id="_from1"
uri="ftp://user:pwd@host:port/reportFolder?filter=#aceReportFileNameFilter" />
<log message="Testing ACE report FTP download" />
<to id="_to1" uri="file://{{downloadFolderPath}}/temp" />
</route>
</routeContext>
Маршрут загружает файлы в соответствии с использованным фильтром, однако он непрерывно опрашивает файлы, а не останавливает загрузку файлов. Вот логи с моей машины.
12: 12: 00.049 [DefaultQuartzScheduler-LISA_Worker-1] INFO oacamel.spring.SpringCamelContext - Маршрут: CSReportFtp запущен и использует из: конечной точки [ ftp: // PCP03D: xxxxxx @ localhost: 53556? CSREPORT разъединение = истина & фильтр =% 23aceReportFileNameFilter]
12: 12: 01.235 [Camel (LISA) thread # 0 - ftp: // PCP03D: xxxxxx @ localhost: 53556 / CSREPORT] INFO CSReportFtp - тестирование отчета ACE по FTP загрузки
12: 12: 01.283 [Camel (LISA) thread # 0 - ftp: // PCP03D: xxxxxx @ localhost: 53556 / CSREPORT] INFO CSReportFtp - тестирование отчета ACE по FTP загрузки
12: 12: 01.815 [Camel (LISA) thread # 0 - ftp: // PCP03D: xxxxxx @ localhost: 53556 / CSREPORT] INFO CSReportFtp - тестирование отчета ACE по FTP загрузки
12: 12: 01.846 [Camel (LISA) thread # 0 - ftp: // PCP03D: xxxxxx @ localhost: 53556 / CSREPORT] INFO CSReportFtp - тестирование отчета ACE по FTP загрузки
12: 12: 02.407 [Camel (LISA) thread # 0 - ftp: // PCP03D: xxxxxx @ localhost: 53556 / CSREPORT] INFO CSReportFtp - тестирование отчета ACE по FTP загрузки
........
........
Я хочу, чтобы файлы загружались только один раз в соответствии с CronScheduledRoutePolicy, чтобы я мог затем загружать отчеты в SharePoint.
Я искал возможные решения и попробовал несколько вещей, таких как передача параметра отключить для закрытия FTP-соединения и попытка закрыть маршрут с использованием DSL и т. Д. Однако это не сработало.
Я сталкивался с тем, что выглядит как обходной путь (я еще не пробовал), как этот Как заставить Camel FTP загружаться только один раз по требованию
Это не точный сценарий для меня.
Может кто-нибудь посоветует интуитивно понятное решение для моего требования. Любая помощь будет принята с благодарностью. Спасибо