如何配置 Apache Camel 以基于触发器文件顺序执行进程?
How do I configure Apache Camel to sequentially execute processes based on a trigger file?
我的情况是外部系统会同时向我发送 4 个不同的文件。让我们这样称呼它们:
- customers.xml(可选)
- addresses.xml(可选)
- references.xml(可选)
- activity.xml(触发文件)
当 trigger 文件被 Camel 发送并获取时,Camel 应该查看文件 #1 是否存在,如果存在则处理它;如果没有,则继续使用相同的 if/then
逻辑处理文件 #2 和文件 #3。执行该逻辑后,它可以继续处理文件 #4。
我找到了像 OnCompletion
这样的元素并确定 body
是否为 null 但如果有人有更好的主意,我将不胜感激。
当我进一步思考时,事实证明这更像是一个序列问题。这里的关键是我将同时分批接收文件。也就是说,我创建了一个可插入的 CustomComparator
.
一旦我创建了 CustomComparator
class 以在给定的 ArrayList 索引位置对我的文件进行排序,我就能够按照我想要的顺序路由消息。
我的情况是外部系统会同时向我发送 4 个不同的文件。让我们这样称呼它们:
- customers.xml(可选)
- addresses.xml(可选)
- references.xml(可选)
- activity.xml(触发文件)
当 trigger 文件被 Camel 发送并获取时,Camel 应该查看文件 #1 是否存在,如果存在则处理它;如果没有,则继续使用相同的 if/then
逻辑处理文件 #2 和文件 #3。执行该逻辑后,它可以继续处理文件 #4。
我找到了像 OnCompletion
这样的元素并确定 body
是否为 null 但如果有人有更好的主意,我将不胜感激。
当我进一步思考时,事实证明这更像是一个序列问题。这里的关键是我将同时分批接收文件。也就是说,我创建了一个可插入的 CustomComparator
.
一旦我创建了 CustomComparator
class 以在给定的 ArrayList 索引位置对我的文件进行排序,我就能够按照我想要的顺序路由消息。