Mule ESB - 在文件相互依赖时设计多文件处理流程

时间:2015-02-08 12:09:17

标签: java mule batch-processing esb

Okie ...我知道File入站元素中的Datamappers,Batch和流支持。我想知道的是集成的设计模式:

  • 您要处理多个文件(csv或xml),例如:1个名为products.csv的文件包含有关产品的所有详细信息。另一个文件images.csv具有products.csv文件中列出的每个产品的图像的URL。另一个文件可以说price.csv有每个产品价格的详细信息。
  • 所有文件都使用PK类型相互链接,例如:产品SKU或产品ID。因此,products.csv中的每一行在images.csv中都有一个或多个链接,在price.csv中有一行。
  • 您需要处理所有文件并保存在数据库中或合并为单个XML或JSON。我的意思是创建一个VO或一个实体,其中产品有一个图像列表,并有价格。所有'有'关系都可以从产品对象/实体导航。

你们如何建议使用Mule ESB进行设计。我知道单个CSV的设计。使用批处理流,您使用流文件连接器读取文件,然后使用流数据映射器提取数据,然后将数据转换为VO并放入DB。这是直截了当的。在数据库插入级别或整个设置中添加批量提交也可以提高性能。但是,当我在我的场景中说有多个文件时该怎么办?

1 个答案:

答案 0 :(得分:2)

StackOverflow已多次询问此问题,并使用不同的措辞。通常答案是让文件入站端点选择众多文件中的一个,然后使用请求者在流中选择其他文件。

请参阅:https://github.com/mulesoft/mule-module-requester

在您的情况下,主文件可用作输入流,而图像和价格查找文件将加载到内存中(在Maps for ex中),因此您可以在处理主流时快速访问它们。