0

我正在编写一个应用程序,其主要目标是从服务提供商(XXX)提取数据,通过 HTTP REST 将其转换并推送到另一个服务提供商(YYY)。

我可以用一个简单的 for 循环来做到这一点,并将最后检索到的项目创建日期存储在一个单独的表中。因此,我可以在需要时继续从上次转换的项目中提取项目,并且我将维护单独的表来保存失败的记录,并通过 CRON 定期重试那些失败的记录。

我还需要使用 SPRING Batch。据我所知,它有助于将代码与 Reader、Processor 和 Writer 模块化。

我错过了什么吗?我可以使用 Spring Batch 并从 A 点到 B 点通过 HTTP 服务同步数据吗?

4

1 回答 1

0

出于多种原因,您仍然可以使用 Spring Batch。这是一个非详尽列表,其中包含与每个功能的用例相关的示例:

  • 声明式 I/O:Spring Batch 提供了丰富的读取器/写入器库,您不必自己编写 I/O 代码(打开/关闭资源、读取原始数据、迭代项目等)。Spring Batch 基于 Spring Framework,您可以利用 Spring Framework 的所有功能,如 AOP、事务管理等。在您的情况下,您可以利用RestTemplateGET/POST 资源
  • 容错:重试/跳过机制允许您在批处理作业中引入一些弹性。例如,在您的情况下,如果休息服务暂时关闭,请重试处理项目。
  • 面向块的处理:该模型非常适合处理大量数据。数据是分块读取的,以避免读取内存中的所有数据集。在您的情况下,您可以每页调用一次以从您的休息端点获取数据
  • 事务管理:Spring Batch 为您管理事务,因此在发生错误时您不会丢失数据。在您的情况下,您提到将项目保存到数据库表中,Spring Batch 可以为您管理事务提交/回滚
于 2018-12-02T09:36:27.413 回答