Spring Batch - Web服务分块的Web服务

时间:2014-07-29 20:58:05

标签: spring-batch spring-integration

我有一个托管的Web服务,允许批量提取记录。此Web服务将起始记录号(ROWID)和页面大小(最大800个)作为参数。可以从此服务中提取50-60k条记录,并调用另一个Web服务,以便在块中再次发布所有这些数据,而不会在其间保留数据。

如何通过调用Web服务使用Spring Batch逐页拉取记录(分块),如何将相同的记录发布到另一个Web服务。

我能够使用Spring-Integration批处理这样做但是对于大量数据集,我不确定当我们使用Spring-Batch处理大量数据时,Spring-Integration是否是理想的做法。

1 个答案:

答案 0 :(得分:1)

Spring Batch没有网络服务ItemReader。话虽这么说,如果你创建一个扩展ItemReader的自定义AbstractPagingItemReader,那么应该为你处理分页逻辑本身(你实现了处理获取数据页面的doReadPage()方法,超类处理跟踪你所在的页面等等。

对于ItemWriter方面,如果您有要调用的客户端,则可以使用ItemWriterAdapter。这将在java对象上调用一个方法,将传递给ItemWriter#write(List items)方法的列表中的每个项目传递给它。否则,你需要自己编写。

在任何一种情况下,您需要的自定义代码都应该是最小的。