Apache Camel在多个文件上触发路由

时间:2016-03-18 15:17:27

标签: java apache-camel

我们在应用程序中配置了几个camel路由,但只要将单个文件放入目录,每个路由都会触发。 其中一条路线,路线A,轮询两个文件,然后移动到/完成。 我需要创建一个路由B,只有当两个文件都在路径A的/ done中时才会触发(将其他文件移到别处)。 它不能立即从在线文档中清楚地知道如何做到这一点。

1 个答案:

答案 0 :(得分:1)

您正在描述需要状态的事件驱动设计(需要移动2个文件)

  1. routeA移动fileX ..完成后..将事件发送到主题/队列
  2. routeB移动fileY ..完成后..将事件发送到主题/队列
  3. 取决于这需要发生的时间和频率以及是否需要一种方法来关联A& B--你需要相应地设计你的可靠性。

    3A。 routeC侦听主题/队列,您可以使用聚合器等待

    - 或 -

    3B。 routeC侦听主题并将数据存储在A发生的db / temp存储中,然后发生B.

    1. routeD民意调查发现A& B已经完成..然后使用pollingConsumer开始处理文件C.
    2. [Camel Polling Consumer] [1] http://camel.apache.org/polling-consumer.html