Java Spring Integration 1.0 RC2:流式文件内容?

Java Spring Integration 1.0 RC2:流式文件内容?,java,file-io,streaming,spring-integration,Java,File Io,Streaming,Spring Integration,我一直在努力寻找这方面的信息,但由于Spring集成框架的不成熟,我没有多少运气 以下是我想要的工作流程: 新文件放置在“传入”目录中 使用文件:入站通道适配器拾取文件 文件内容流式传输,每次N行,传输到“阶段1”通道,该通道将该行解析为中间(共享)表示 该解析线路被路由到多个“阶段2”通道 每个“阶段2”通道对N条可用线进行自己的处理,以将其转换为最终表示。此通道必须有一个队列,以确保在一个通道的处理速度明显慢于其他通道的情况下,没有第2阶段通道被淹没 N行的最终表示形式将写入文件。输出文件的

我一直在努力寻找这方面的信息,但由于Spring集成框架的不成熟,我没有多少运气

以下是我想要的工作流程:

  • 新文件放置在“传入”目录中

  • 使用文件:入站通道适配器拾取文件

  • 文件内容流式传输,每次N行,传输到“阶段1”通道,该通道将该行解析为中间(共享)表示

  • 该解析线路被路由到多个“阶段2”通道

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

  • N行的最终表示形式将写入文件。输出文件的数量将与步骤4中的路由目标数量相同

  • **上面的“N”表示每次读取的合理行数,从[1,任何我可以合理放入内存的行数],但保证总是小于完整文件中的行数*

    如何在Spring集成中完成流式处理(步骤3、4、5)?不用流式传输文件很容易,但我的文件太大,无法将整个文件读入内存


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

    这是一个非常有趣的用例,很抱歉我错过了这么长时间。这绝对值得为它创造一个问题。目前,我们在Spring集成中支持拾取文件并向其发送引用。对于将文件转换为字节[]或字符串,也有一些基本的支持


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

    这是一个非常有趣的用例,很抱歉我错过了这么长时间。这绝对值得为它创造一个问题。目前,我们在Spring集成中支持拾取文件并向其发送引用。对于将文件转换为字节[]或字符串,也有一些基本的支持

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