用于Spring Batch处理REST服务的中间结果存储

时间:2018-11-11 12:15:08

标签: spring rest spring-batch

我想从REST服务中获取文档,使用Spring Batch处理,然后发送到其他REST服务,而不将任何内容保存到任何数据库中。

考虑到每个Step需要ItemReaderItemWriter,我想我需要实现一个ItemReader来从输入服务下载文档,一个{{1} },它将以某种方式将中间结果存储在内存中,然后是ItemWriter,它将从内存中读取结果以用于下一步;最后一个ItemReader将在所有处理完成后发送结果。

这是个好方法还是有人有更好的主意?

1 个答案:

答案 0 :(得分:0)

  

我想从REST服务中获取文档,使用Spring Batch处理,然后发送给其他REST服务

您可以在一个面向块的步骤中进行操作。读取器从REST服务中获取数据,处理器用于处理数据,并写入数据以将数据发布到其他REST服务。

  

不将任何内容保存到任何数据库。

即使您不想将任何内容保存到数据库(我想您的意思是保存到单独的数据库服务器),您仍然可以使用内存数据库并将中间处理结果保存到登台表。第一步将从REST服务获取数据,对其进行处理并将其写入登台表。第二步从登台表中读取数据并将其发送到第二个REST服务。该技术的优点是,您可以在开始第二步之前对登台表上的处理结果进行汇总。

  

这是个好方法还是有人有更好的主意?

第三种方法是使用暂存内存java.util.Queue。在这里,您可以像使用登台表一样使用两个步骤,但是将队列用作登台存储。

希望这会有所帮助。