Spring batch Spring批处理-创建失败步骤?

Spring batch Spring批处理-创建失败步骤?,spring-batch,Spring Batch,我有一个ItemProcessor,可以从CSV文件中读取数据。 然后,我有一个ItemWriter,它从这些数据构建新对象,并将这些新对象保存到数据库中 作业开始时,我正在创建一个具有以下属性的BatchExecution对象: 公共类批处理执行 { 私人长id; 私有LocalDateTime开始日期; 私有批处理状态枚举状态; } 我需要做的是计算这些新对象的总数并定义一个阈值 如果这些新对象的总数达到阈值,那么我们应该转到someNextStep 如果没有,则需要将我的BatchEx

我有一个
ItemProcessor
,可以从CSV文件中读取数据。 然后,我有一个
ItemWriter
,它从这些数据构建新对象,并将这些新对象保存到数据库中

作业开始时,我正在创建一个具有以下属性的
BatchExecution
对象:

公共类批处理执行
{
私人长id;
私有LocalDateTime开始日期;
私有批处理状态枚举状态;
}
我需要做的是计算这些新对象的总数并定义一个阈值

  • 如果这些新对象的总数达到阈值,那么我们应该转到
    someNextStep
  • 如果没有,则需要将我的
    BatchExecution
    对象的状态设置为
    BatchStatusEnum.VALIDATION\u ERROR“
我创建了一个
ThresholdValidationException
,当我的对象总数小于阈值时抛出该异常,并将我的writer设置为
容错
,如下所示


.作者(作者)
.容错()
.skip(ValidationException.class)
.skipLimit(0)
.build();
private void validateThreshold(长totalCount、长thresholdValue、BatchExecution currentBatch)抛出ValidationException{
如果(totalCount)
当抛出
ValidationException
时,作业失败,但状态未设置为
VALIDATION\u ERROR

所以我试着使用这样的条件:

.on(“失败”)
(完)
.关于(“已完成”)
.to(下一步)
但结果是一样的

我有很多关于如何处理spring batch异常的问题:

  • 跳过策略是否仅用于自定义将导致作业失败的异常
  • 我可以创建一个
    错误步骤来处理所有异常和错误吗?如果可以,这是处理异常的正确方法吗
  • 为什么我的批处理状态未更新到数据库中
  • 谢谢

    编辑:刚刚在
    onWriteError
    上找到了一个链接。这似乎是实现我要做的事情的一种方法