【发布时间】:2015-01-13 18:01:21
【问题描述】:
我正在寻找有关如何设置骆驼路线的建议。基本上,我需要等待创建给定的文件列表,然后将它们作为一个单元一起处理。这是我的场景:
-
request-manifest.xml由外部进程生成到Incoming/Requests。该文件列出了一组要作为一个单元处理的文件。 - 之后的某个时间,这些文件由另一个外部进程生成到
Incoming/Parts。这些文件是并行创建的,因此可能会在不同时间以任意顺序显示,但通常在几分钟内显示。 - 然后将整个批次作为一个单元进行处理(例如,压缩和 FTP,复制到另一个位置等)
从概念上讲,我已经制定了两种可能的方法:
- 将清单转换并拆分为单独的 ManifestItem,然后并行丰富每个 ManifestItem,然后重新组合成一个完整的 Batch。
- 轮询
Incoming/Parts并使用其批次 ID 丰富每个文件消息,然后将它们聚合成一个完整的批次
第一种方法使用Composed Message Processor 模式,虽然我不确定如何让 ManifestItems 扩充以并行等待,而且我不知道如果系统等待数百或数千它是否会很好地扩展的文件。从概念上讲,它似乎更简单,只有一条路线。
第二种方法是更多事件驱动的(即使文件端点轮询,它也会从我们那里抽象出来),但它似乎更复杂。它将有两条路线,一条用于处理清单,一条用于处理部件,并且似乎需要一些临时存储(内存数据库?)来累积传入请求的数据,以便在每个文件与其批处理相关联时出现。
这两种方法看起来都不错吗?做这种事情的最“Cameline”方式是什么?
【问题讨论】:
标签: file routes apache-camel polling