2008-12-10 85 views
1

我一直在试图找到关于这方面的信息,但由于Spring集成框架的不成熟,我没有多少运气。Spring Integration 1.0 RC2:流文件内容?

这是我希望的工作流程:

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

  2. 文件被拾起使用文件:入站通道适配器

  3. 文件内容每次流式传输N行,到一个“阶段1”通道,该通道将线路解析为中介(共享)表示。

  4. 此解析线被路由到多个“第2阶段”的通道。

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

  6. 的N条线的最终表示被写入到文件中。会有多达输出文件作为有路由目的地在步骤4

**“N”以上代表线中的任意合理数量的在一个时间看,从[1,无论我能适合[

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

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

回答

1

这是一个非常有趣的使用情况下,我很抱歉,我错过了这么长的时间。这绝对值得创建一个问题。目前我们在Spring Integration中支持收集文件并发送引用他们左右。还有一些基本的支持将文件转换为byte []或String。

答案是,现在你会做第2步中的自定义Java代码,发送块断到阶段2通道。我建议不要将引用作为消息负载发送给周围的流。