我们需要每小时从供应商的FTP网站下载多个文件。供应商提供了两个ftp站点用于容错,两个站点具有相同的文件。我想设置一个骆驼路线下载文件从ftp站点A,如果没有,请尝试ftp站点B。以下代码是不正确的,但它可能会突出显示我正在尝试实现的目标。
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");有没有人对我如何做到这一点有什么想法?
发布于 2015-11-13 08:38:11
默认情况下,当连接失败时,ftp使用者会生成警告消息,而不是抛出异常,但通过throwExceptionOnConnectionFailed属性,您可以更改为抛出异常,并处理PollingConsumerPollStrategy1 rollback()方法中的异常。
https://stackoverflow.com/questions/33683969
复制相似问题