如果我必须处理API服务而不是CSV作业,是否需要春季批处理?

时间:2018-12-02 00:13:09

标签: java spring-boot spring-batch spring-batch-admin spring-batch-job-monitoring

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

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

我是否仍需要使用SPRING Batch。 从我所看到的是,它可以帮助使用Reader,Processor和Writer对代码进行模块化。

我错过了什么吗?我可以使用spring batch并受益于从A点到B点通过HTTP服务进行数据同步吗?

1 个答案:

答案 0 :(得分:0)

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

  • 声明式I / O:Spring Batch提供了一个丰富的读取器/写入器库,您无需自己编写I / O代码(打开/关闭资源,读取原始数据,对项目进行迭代等)。 Spring Batch基于Spring Framework,您可以利用所有Spring Framework功能,例如AOP,事务管理等。在您的情况下,您可以利用RestTemplate来获取/发布资源
  • 容错:重试/跳过机制使您可以在批处理作业中引入一定的弹性。 例如,在您的情况下,如果其余服务暂时关闭,请重试处理项目。
  • 面向块的处理:该模型非常适合大量数据。块中读取数据,以避免读取内存中的所有数据集。 以您为例,您可以每页拨打一次电话,以从其余端点获取数据
  • 事务管理:Spring Batch为您管理事务,因此在发生错误时您不会丢失数据。 在您的情况下,您提到将项目保存到数据库表中,Spring Batch可以为您管理事务的提交/回滚