我正在研究一个骆驼原型,它在同一个骆驼上下文中使用两个起点。
第一个路由使用用于“配置”应用程序的消息。消息通过 configService bean 加载到配置存储库中:
// read configuration files
from("file:data/config?noop=true&include=.*.xml")
.startupOrder(1)
.to("bean:configService?method=loadConfiguration")
.log("Configuration loaded");
第二个路由实现了一个接收者列表 eip 模式,将不同类型的输入消息传递给多个接收者,这些接收者从同一个配置存储库中动态读取:
// process some source files (using configuration)
from("file:data/source?noop=true")
.startupOrder(2)
.unmarshal()
.to("setupProcessor") // set "recipients" header
.recipientList(header("recipients"))
// ...
现在出现的问题是如何同步它们,因此如果第一个路由正在处理新数据,则第二个路由“等待”。
我是 Apache Camel 的新手,对如何解决这样的问题非常迷茫,任何建议都将不胜感激。