Spring Batch策略

时间:2012-07-11 11:36:18

标签: spring-batch

高级要求如下: 我有一个输入表(INPUT),我应该从中读取数据,将其发送到外部服务进行验证,并在Output表中更新验证响应。基于各种样本,我已经实现了这个。

但是,输入表是扁平结构。即,例如:学生表,其中包含表中学生的多个考试成绩。当我发送它进行验证时,我必须检索学生的所有记录并发送给它进行验证。 还有一个问题是并行处理。点击外部服务会产生一些网络延迟,我们希望对读取,处理和写入或处理和写入进行并行处理。

我想了解可行的读者,作家和处理器。

请帮帮我。

1 个答案:

答案 0 :(得分:0)

我建议你创建一个能从表中读取数据的Reader。生成的单个元素(在我的解释的其余部分命名为E)必须能够发送到您的验证服务。

然后编写一个具有前一个参数E的处理器。它调用您的验证服务。验证结果将是处理器的输出(名为O)。

最后,创建一个将O作为参数的Writer,以及将最终数据写入数据库的角色。

并行处理将通过Spring配置使用ThreadPoolTaskExecutor完成。重要的是以线程安全的方式编写Reader,Processor和Writer。

为了获得更好的性能,还应检查参数 commit-interval (在Writer上),如果使用Hibernate,请检查其批量容量(我通常通过批量插入找到最佳性能/更新25-30个请求)。