高级需求如下:我有一个输入表( input ),我应该从其中读取数据,将其发送到外部服务进行验证,并更新输出表中的验证响应。基于不同的示例,我实现了这个示例。
但是,输入表是扁平结构的。例如:一个学生表,它在一个表中包含一个学生的多个考试结果。当我发送它以进行验证时,我必须检索一个学生的所有记录并将其发送以进行验证。另一个问题是并行处理。命中外部服务会有一些网络延迟,我们希望并行处理读取、处理和写入或处理和写入。
我想知道可行的读者,写入者和处理器,在哪里可以这样做。
请帮帮我。
发布于 2012-07-31 04:10:21
我建议您创建一个读取器,它将从表中读取数据。生成的单个元素(对于我的其余解释,名为E)必须能够发送到您的验证服务。
然后编写一个带有前一个参数E的处理器,它调用您的验证服务。验证的THe结果将是您的处理器的输出(名为O)。
最后,创建一个以O作为参数的Writer,该Writer的角色是将最终数据写入数据库。
并行处理将通过使用ThreadPoolTaskExecutor的Spring配置来完成。重要的部分是以线程安全的方式编写Reader、Processor和Writer。
为了获得更好的性能,你还应该检查参数commit-interval (在Writer上),如果你使用Hibernate,检查它的批处理能力(我通常通过执行25-30个请求的批量插入/更新来找到最佳性能)。
https://stackoverflow.com/questions/11431798
复制相似问题