Spring Integration 1.0 RC2:流媒体文件内容?

时间:2008-12-10 20:36:50

标签: java file-io streaming spring-integration

我一直在努力寻找相关信息,但由于Spring Integration框架的不成熟,我没有太多运气。

这是我想要的工作流程:

  1. 新文件放在“传入”目录

  2. 使用文件:inbound-channel-adapter

  3. 获取文件
  4. 文件内容一次N行流式传输到'Stage 1'通道,后者将该行解析为中间(共享)表示。

  5. 此解析后的行路由到多个“第2阶段”频道。

  6. 每个“第2阶段”通道在N条可用线上自行处理,将它们转换为最终表示。该通道必须有一个队列,以确保在一个通道处理速度明显慢于其他通道的情况下,没有第二级通道被淹没。

  7. N行的最终表示形式写入文件。在步骤4中将有与路由目的地一样多的输出文件。

  8. **'N'代表一次读取的任何合理行数,从[1,无论我能合理地放入内存],但保证总是小于完整行中的行数文件中。*

    如何在Spring Integration中完成流式传输(步骤3,4,5)?没有流式传输文件很容易,但我的文件足够大,我无法将整个文件读入内存。

    作为旁注,我有一个没有Spring Integration的工作流程的工作实现,但由于我们在项目的其他地方使用Spring Integration,我想在这里尝试一下,看看它是如何执行的结果代码如何比较长度和清晰度。

1 个答案:

答案 0 :(得分:1)

这是一个非常有趣的用例,我很抱歉我错过了这么长时间。绝对值得创造一个问题。目前,我们在Spring Integration中支持获取文件并向其发送引用。将文件转换为byte []或String。还有一些基本的支持。

答案是,现在您将在自定义Java代码中执行第2步,将块发送到Stage 2通道。我建议不要将对流的引用作为消息有效负载发送。

豫ICP备18024241号-1