从ftp下载文件的骆驼路由。我们可以在路由被调用之前引入预处理器吗?
问题描述:
嗨有下面的路线。从ftp下载文件的骆驼路由。我们可以在路由被调用之前引入预处理器吗?
现在我想插入或在路由开始从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>
答
弄来有机会看到骆驼拦截器,特别是“interceptFrom”。 http://camel.apache.org/intercept.html
InterceptFrom
InterceptFrom是用于截获任何传入兑换,在任何途径(它拦截所有的DSL从)。这使您可以为收到的Exchange执行一些自定义行为。您可以为给定的端点提供特定的uri,然后它仅适用于该特定的路由。
也有看建议。 http://camel.apache.org/advicewith.html
可以通过添加InterceptFrom来建议现有路线。
不可以,但您可以使用路由策略或事件通知程序在路由启动/停止等之前获取回调或创建/完成交换等。 –