当前位置: 首页 > 知识库问答 >
问题:

在Springboot上运行的Java/Spring batch/Oracle编写的ETL作业的高可用性体系结构

裴宜春
2023-03-14

应用:在SpringBoot上运行的java/Spring Batch/Oracle编写的ETL应用程序

问题陈述:一个java作业中有几个长时间运行的SQL查询,查询执行是作业的最后一步。有时查询卡在DB级别,DB没有响应,最终,查询被杀死,作业必须重新启动。

现在我想实现(针对spring作业和非spring作业):

  1. 一种在失败点而不是从顶部开始工作的方法

共有1个答案

白博赡
2023-03-14
  1. 从失败点开始工作的方法,而不是从顶部开始。

Spring Batch默认情况下提供了这一功能,因为您使用的是持久性作业存储库。如果重新启动失败的作业实例,Spring Batch将从最后一个失败步骤中的最后一个保存点重新启动(除非您将步骤配置为即使成功完成也可重新启动)

如果您的数据库服务器没有响应,Spring Batch或任何其他工具都无法改善这里的情况。您可以做的是将超时应用于您的步骤,并在超过超时时停止它。您可以在此处找到完整的代码示例:超时后重新启动步骤(或作业)

 类似资料:
  • 问题内容: 我有一个运行Linux Ubuntu的Freescale(i.MX53)的ARM Coretex-A8开发板。它可以正常启动,我可以使用鼠标/键盘/终端访问系统。 首先,我想让一个应用程序在主机OS内的板上运行,就像在PC上运行应用程序一样。 我的问题是,使用基于cc的YAGARTO之类的工具链来编译我的测试程序,因为我没有定义任何启动脚本,所以最终在链接方面遇到麻烦。 我发现了许多有

  • 我正在编写spring批处理,它从平面文件中读取数据,很少进行处理,并将摘要写入输出文件。与reader相比,我的处理器和写入程序相对更快。我正在使用FlatFileItemReader,并尝试了从50-1000开始的各种提交间隔。我的批处理作业必须以更快的速度处理1000万条记录。请告诉我如何提高FlatFileItemReader的速度。粘贴到我的配置文件和映射器类下面,读取字段集并将值设置为

  • 通过 Oracle 基础教程、PL/SQL 教程两个篇章的学习,对于 Oracle 数据库有了一定的了解,已经基本满足 Oracle 的日常开发工作。但是在实际当中我们一般需要一个懂得管理 Oracle 数据库的管理者(DBA)。

  • 我有类文件加载到Hadoop文件系统,也有输入文件加载到HDFS。当我在终端中通过hadoop命令运行类文件时,出现了类找不到的错误。例如:我有HDFS内容为WordCount.Class WordCountMapper.Class WordCountReducer.Class SampleInpujt.txt 有人能纠正我哪里做错了吗?或者这是真的可以做到的。

  • 用例:步骤1:ItemReader:从数据库中读取1000个ItemProcessor块中的数据:处理这些数据。ItemWriter:将数据写入地图,以便下一步使用 步骤2:ItemReader:读取地图ItemProcessor:处理地图数据并获取新对象。ItemWriter:将新的进程对象持久化到数据库中。 现在我希望Map在整个作业中保持不变,目前我已经为Map创建了一个不同的POJO类,并

  • 问题内容: 我需要每天在特定时间在Linux服务器上运行一段Java代码。 目前,我正在Ubuntu桌面上对其进行测试,方法是从终端运行它,并按要求正常运行。为了进行调度,我从这里开始使用库。 在实际服务器上,将其作为进程运行的正确方法是什么? 我的意思是,在桌面上,我从终端运行指定接近当前时间的代码,第一次对其进行测试,然后将其停止(^ Z)。 在服务器上将它推送到后台是正确的方法吗?我相信必须