2

我是 spring-batch 的新手,我想用它来实现以下过程:

阅读:来自网络服务的项目列表
过程:对这些项目进行分组
写:这些组回到 web 服务

例子:

输入:
交易ID、商店、金额
1,FooStore,2.50
2,酒吧商店,19.99
3,FooStore,12,49

输出:
totalsID、商店、金额
1,FooStore,14.99
2,酒吧商店,19.99

这甚至可以使用spring-batch吗?我错过了一个重要的步骤,还是这与批处理的概念冲突到了我应该寻找不同的解决方案的程度?

我找到了一个可能的解决方案,那就是使用该writeFooter方法,但这似乎很愚蠢,因为我担心我会失去使用 spring-batch 的很多好处,比如错误恢复和内存管理。另外,据我所知,仅在将输出写入文件而不是发送到 Web 服务时才支持页脚。

4

1 回答 1

4

用两个步骤编写作业:

  1. 读取每条记录,然后从输入中ItemWriter.write()更新汇总表
  2. 将您的汇总表转储到文本文件(或 Web 服务)

您还可以尝试使用 SUM() 和 COUNT() 等聚合函数编写单个 SQL 语句来达到目标​​,然后通过单步作业读取从自定义 SQL 生成的每条记录并直接写入您的文本文件(或 Web 服务)。

于 2013-11-11T13:54:33.510 回答