【问题标题】:How to stream records from a web service in a spring batch like JDBCCursorItemReader如何在 JDBCCursorItemReader 等春季批处理中从 Web 服务流式传输记录
【发布时间】:2015-07-25 13:09:33
【问题描述】:

用例是从 REST Web 服务读取大量数据,百万对象列表,处理它们并将它们写回某处。问题是我不想一口气从 Web 服务中读取所有数据。我想从 web 服务中读取总结果的一个子集,一次读取几个记录/对象,这样我就不会冒着从 spring 批处理中一次性读取所有数据而耗尽内存的风险读者。有没有办法做到这一点? Spring Batch 提供ItemReaderAdapter 用于从外部服务读取(与从数据库或平面文件相反),但除了支持委派某些调用外,它没有什么特别之处。我想做一些JDBCCursorItemReader 读取的东西,或者更确切地说是从数据库中流式传输而不是一次读取所有内容。

http://forum.spring.io/forum/spring-projects/batch/73040-default-webservice-reader-implementation 这里他们谈到了缺乏网络服务阅读器。

https://stackoverflow.com/a/25025898/153940 还提到 Spring Batch 没有网络服务ItemReader

【问题讨论】:

    标签: stream spring-batch batch-processing chunking


    【解决方案1】:

    您是正确的,因为 Spring Batch 不提供 Web 服务 ItemReader 实现。其原因是“Web 服务”的定义过于模糊,无法规范读者。

    话虽如此,您可以通过扩展 AbstractPagingItemReader (http://docs.spring.io/spring-batch/trunk/apidocs/org/springframework/batch/item/database/AbstractPagingItemReader.html) 并在其中添加适合您的 Web 服务的逻辑来轻松实现自己的。

    【讨论】:

      猜你喜欢
      • 2021-06-21
      • 1970-01-01
      • 2015-06-11
      • 2020-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-15
      • 2018-05-27
      相关资源
      最近更新 更多