2013-10-09 42 views
0

我试图在我的需求中实现并行/并行处理,但在这方面我没有得到适当的帮助。在Apache Camel组播/并行/并发处理中需要帮助

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

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

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

重复上面每隔15分钟,

我想paralally下载的所有文件夹,请提出解决办法,如果有人在类似的要求工作。

我想知道如何启动/启动这些多个路由(如多个远程目录),当我没有启动器终点时应该启动。我想开始所有的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) 

回答

0
  • 骆驼支持FTP定期通过consumer.delay财产
  • 动态添加骆驼FTP消费路线的每个服务器,如图this unit test
  • 轮询然后您可以根据大小或超时值汇总结果以启动Lucene索引等。

[待办事项 - 放在一起的例子]

+0

嗨感谢您的答复,我看到了你给的动态添加路由代码,什么是我需要的是 ' <从URI =“SEDA:开始”/> <到URI = “直接:一个”/> <到URI = “直接:一个”/> 当我添加像上面 <从URI = “SEDA:启动”/> ' 上面的代码是否会这样转换?因为我想添加另一个类似于我已经添加的并行于已经启动的进程的路由器) 。 –