Нам необходимо загрузить несколько файлов по часам с FTP-сайта поставщиков. Поставщик предоставляет два ftp-сайта для отказоустойчивости на обоих сайтах, имеющих одинаковые файлы. Я хотел бы настроить маршрут Camel для загрузки файлов с ftp-сайта A, если он доступен, и если не попробовать ftp-сайт B. Следующий код неверен, но он может выделить то, что я пытаюсь достичь.Отказоустойчивость при чтении с FTP-сайтов с использованием Camel
from("timer://timer1?fixedRate=true&period=60m")
.loadBalance()
.failover(-1, false, true)
.to("direct:ftp-symbolguides-1")
.to("direct:ftp-symbolguides-2")
.end();
from("direct:ftp-symbolguides-1")
.to("ftp://SiteA?localWorkDirectory=c:/temp&passiveMode=true&noop=true&idempotentKey=${file:name}-${file:size}&idempotentRepository=#idempotentRepository")
.to("file:/c:/temp/inbox");
from("direct:ftp-symbolguides-2")
.to("ftp://SiteB?password=publicftp&localWorkDirectory=c:/temp&passiveMode=true&noop=true&idempotentKey=${file:name}-${file:size}&idempotentRepository=#idempotentRepository")
.to("file:/c:/temp/inbox");
Есть ли у кого-нибудь мысли о том, как я могу это достичь?
Благодарим вас за руководство по этому вопросу. Я очень новичок в Camel, но из того, что я могу извлечь из ваших мыслей, мне нужно будет обновить экземпляр Consumer, который передается методу отката с IP-адресом вторичного FTP-сайта, а затем вернуть false? – djsnowsill