春季批作业问题

时间:2019-04-28 11:25:30

标签: spring spring-batch

Spring批处理作业读取一个大的CV文件并读取记录,并将消息发送给第三方使用静态API。在运行Jobs时,文件中间出现了一些问题,并且放弃了作业,是否有任何方法可以在剩余位置启动作业并处理其余记录,而不是从头开始?

我需要建议。有办法避免这种现象,而不是再次处理文件吗?

1 个答案:

答案 0 :(得分:1)

是的,您可以从失败的工作点重新开始失败的工作。这正是Spring Batch可以为您提供帮助的地方。

但是您需要预先进行一些设计:

  • 尽可能使用ItemReader / ItemProcessor / ItemWriter。如果您有大量步骤,则需要编写自己的可重新启动逻辑。
  • 请注意您的工作参数。默认情况下,它们是唯一的-因此对于您的工作,它们是Primary key的一种。这样一来,您就可以使用相同的参数开始作业-将重新启动作业,然后从上一个失败的步骤开始。
  • Spring批处理在数据库中保存行和步骤元数据的计数器,因此您希望数据库具有持久性。

这里有很多要解释的内容,因此请阅读官方文档: https://docs.spring.io/spring-batch/trunk/reference/html/configureJob.html#restartability