在Apache Camel多播/并行/并发处理方面需要帮助

时间:2013-10-09 19:17:31

标签: apache apache-camel

我正在尝试在我的要求中实现并发/并行处理,但是我在这方面的多次尝试中没有获得适当的帮助。

我有5个远程目录(可以添加或删除),其中包含日志文件,我想将Dow加载它们每15分钟到我的本地目录,并希望在完成ftp传输作业后执行Lucene索引,我想要动态添加路由器。

由于所有这些远程机器都有不同的端点和不同的路由。我没有任何特别的终点来启动所有这些。

Start 
<parallel>
        <download remote dir from: sftp1>
       <download remote dir from: sftp2>
          .... 
</parallel>
<After above task complete>
<start Lucene indexing>
<end>

每15分钟重复一次,

我想简要地下载所有文件夹,如果有人处理类似的要求,请提出解决方案。

我想知道当我没有起始端点时,应该启动如何启动/启动这些多个路由(比如这个多个远程目录)。我想并行启动所有ftp操作,然后完成那些索引。感谢您花时间阅读这篇文章,我非常感谢您的帮助。

我试过这样,

from (bean:foo? Method=start).multicast ().to (direct:a).to (direct:b)... 

From (direct:a) .from (sftp:xxx).to (localdir) 
from (direct:b).from (sftp:xxx).to (localdir) 

1 个答案:

答案 0 :(得分:0)

  • camel-ftp支持通过consumer.delay属性定期轮询
  • 为每个服务器动态添加camel-ftp使用者路由,如this unit test
  • 所示
  • 然后,您可以根据大小或超时值汇总结果,以启动Lucene索引等。

[todo - 拼凑一个例子]