是否可以从Camel中的另一个RouteBuilder调用一个RouteBuilder

时间:2015-11-03 04:01:18

标签: apache-camel

我有两个不同的流程。一个读取一些csv文件并将其存储在DB中,其他文件从DB中获取记录并计算一些值并将其存储在DB中。我想在完成第一个过程时调用第二个过程。是否有可能在骆驼的帮助下做到这一点。

2 个答案:

答案 0 :(得分:2)

致电'另一条路线,当一条路线完成后,您只需使用.to()direct组件将交易所发送到该路线。

from("file:/csv-drop/")
    .to(db:store)
    .to("direct:calculate-value-and-store")

在另一个路径构建器或相同的路径构建器中:

from("direct:calculate-value-and-store")
    .to(db:get)
    .process(new CalculateValueProcessor())
    .to(db:store)

上面的代码不会起作用,但它可以让您了解使用两条路线的情况。

答案 1 :(得分:2)

您有很多可能将一条路线相互连接:

  • 直接组件。
  • vm 组件。
  • seda 组件。
  • activemq jms 组件。
  • direct-vm 组件。

可在此处找到更多信息:https://camel.apache.org/components.html

  • 直接 direct-vm - 用于同步消息传递的组件。
  • seda vm - 用于异步内存消息传递的组件。
  • activemq jms - 通过JMS进行异步消息传递的组件。
  • direct-vm vm - 可以使用内存消息传递来连接在不同OSGI Bundles中部署的路由。例如。