从ftp下载文件的camel路由。我们可以在调用路由之前引入预处理器吗?

时间:2017-06-14 20:23:14

标签: spring apache-camel sftp

您有以下路线。

现在我想在路由开始从ftp下载文件之前插入或调用preproccsor bean。我想这样做是为了序列化,因为我有一个分布式节点设置,并希望使用Zookeeper一次一个地序列化下载。运行此路由的所有节点都会导致问题。是否有任何预处理器挂钩或bean可用于执行此操作。

 <route id="download-from-ftp" autoStartup="{{cnpp.route.startup}}" 
     startupOrder="1">
        <from
                 uri="uri"/>

        <to uri="{{download.filelocation}}"/>
        <to uri="{{backup.filelocation}}"/>
        <process ref="updateDownloadedProcessor"/>
    </route> 

1 个答案:

答案 0 :(得分:0)

你是否有机会看到骆驼拦截器,特别是&#39; interceptFrom&#39;。 http://camel.apache.org/intercept.html

  

<强> InterceptFrom

     

InterceptFrom用于拦截任何路由中的任何传入Exchange(它拦截来自DSL的所有路由)。这允许您为收到的Exchange执行一些自定义行为。您可以为给定的端点提供特定的uri,然后它仅适用于该特定路由。

还可以看看AdviceWith。 http://camel.apache.org/advicewith.html

可以通过添加InterceptFrom来建议现有路线。