如何配置 Apache Camel 以基于触发器文件顺序执行进程?

How do I configure Apache Camel to sequentially execute processes based on a trigger file?

我的情况是外部系统会同时向我发送 4 个不同的文件。让我们这样称呼它们:

  1. customers.xml(可选)
  2. addresses.xml(可选)
  3. references.xml(可选)
  4. activity.xml(触发文件)

trigger 文件被 Camel 发送并获取时,Camel 应该查看文件 #1 是否存在,如果存在则处理它;如果没有,则继续使用相同的 if/then 逻辑处理文件 #2 和文件 #3。执行该逻辑后,它可以继续处理文件 #4。

我找到了像 OnCompletion 这样的元素并确定 body 是否为 null 但如果有人有更好的主意,我将不胜感激。

当我进一步思考时,事实证明这更像是一个序列问题。这里的关键是我将同时分批接收文件。也就是说,我创建了一个可插入的 CustomComparator.

一旦我创建了 CustomComparator class 以在给定的 ArrayList 索引位置对我的文件进行排序,我就能够按照我想要的顺序路由消息。