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

清理异常终止的Spring批处理作业

郎河
2023-03-14

我们的Spring批处理作业在处理输入文件时突然失败。当我试图重新运行批处理作业时,它会抛出以下消息。

02:27:09.088[main]调试O.S.B.C.R.dao.jdbcstepExecutionDAO-在更新StepExecution之前截断长消息,原始消息为:org.springframework.batch.core.jobExecutionException:无法从开始状态重新启动step。旧的执行可能仍在执行,因此您可能需要手动验证是否存在这种情况。

是否有成功的方法来完成/完成当前实例并开始一个新的实例?

共有1个答案

冯鸿光
2023-03-14

Spring Batch中没有任何东西可以进行这种类型的清理。主要原因是,通常决定要做什么(执行失败吗?是完成吗?是其他原因吗?)通常是工作级别的人为决定。你需要自己处理清理工作。

 类似资料:
  • 我对Spring批处理跳过逻辑有一些问题。我已经配置了一个作业的步骤来跳过两个异常(SQLIntegrityConstraintViolation异常和乐观锁定失败异常): 但当作业运行时,由于我将其配置为跳过的异常,作业以未知状态完成: 我做错什么了吗?我希望这一步跳过负责抛出其中一个异常的项,并继续处理,以便以完成状态结束。

  • 我有以下工作要处理在一定的时间间隔或特别的基础上。 作业中的步骤如下: 我也想要用户界面,在那里我可以触发一个特别的基础上的工作,而且我应该能够提供参数从用户界面。 我想用Spring batch来完成这个任务,但它更多的是用于读->处理->写之类的工作。这里,在第一步中,我正在生成由第二步读取的数据。我不确定我是否还可以使用Spring batch来实现这个,或者有更好的方法来实现这个。

  • 我正在用异步JobLauncher在Spring Batch中配置一个(长时间运行的)作业,我有两个RESTendpoint: null 谢谢朱利奥

  • 步骤1:从数据库中加载10条记录。(Tasklet负责该工作) 步骤2:使用提交间隔=1的ItemReader、ItemProcessor、ItemWriter实现配置了面向块的处理 据我所知,对于每一个记录 > 我的问题是假设它处理了六条记录,而现在在ItemProcessor实现中的第7条记录出现了异常,它尝试回滚,但由于事务处于未知状态而无法回滚 即使它不能回滚第7条记录的tx,它也不会处理

  • 我有下一个spring批处理配置类: 启动应用程序时,我收到下一个异常:

  • 问题内容: 我有一个处理很大文件并将数据发送到oracle数据库的应用程序(使用Java 6,oracle 9)。 在循环中,我使用并创建了所有使用生成的SQL语句。 我有一种情况,在期间将a 抛出。此时,该批处理停止执行。 我希望继续执行批处理,以便随后可以在method中检查失败的更新。 关于类BatchUpdateException的Javadoc说: 批处理更新中的命令无法正确执行并且抛出