我想在Apache Camel中实现下一个场景(包含在JBoss Fuse中):
我有两个系统,它们都分别生成存储在数据库中的事件。现在我需要从这个事件表中读取事件并将它们作为消息放入队列中(由ActiveMQ实现)。但是真正重要的是我需要保持这个队列中事件的时间顺序(创建时间),而不是创建事件的事情。
我正在寻找最大限度地使用Camel框架中的组件和模式的解决方案,当然我可以实现Camel(纯Java)之外的读取机制,但我更喜欢Camel解决方案。
非常感谢任何想法!
答案 0 :(得分:1)
我认为您只想将消息弹出到seda
队列并使用resequencer
将它们合并回订单。
from("--database1--")
to("seda:resequencer")
from("--database2--")
to("seda:resequencer")
from("seda:resequencer")
.resequence(header("date")).batch().timeout(5000L)
.to("activemq:...")
您需要注意超时设置和适当的设置。
(注意:我还没有测试过这段代码,所以请把它作为建议)。