Spring Batch侦听器中的异常会导致作业失败吗?

问题描述 投票:0回答:1

所以有两个部分。

[首先,我最近在弹簧批处理作业的侦听器中遇到错误。该工作正在处理2000条记录,并成功处理了1790条记录。侦听器在遇到异常并失败之前仅处理了约100条记录。除了已记录并先于

的相同异常之外,已记录的作业中没有其他任何异常

2018-01-10 15:21:24.798错误16416 --- [pool-5-thread-7] o.s.batch.core.job.AbstractJob:afterStep回调中遇到异常

杀死侦听器的异常是否有可能在完成处理/提交剩余的210条记录之前就停止了该作业?这似乎没有多大意义,但我不确定还有哪些其他原因会导致未提交这些记录。

其次,spring batch在输入文件中读取的顺序是什么?在上述情况下的210条记录是文件中的前210条。我想知道是否是因为spring batch从最后一行到第一行读取文件,这将解释为什么这些记录没有得到处理。

listener spring-batch
1个回答
0
投票

如果检查AbstracStep的源代码

try {
    // Update the step execution to the latest known value so the
    // listeners can act on it
    exitStatus = exitStatus.and(stepExecution.getExitStatus());
    stepExecution.setExitStatus(exitStatus);
    exitStatus = exitStatus.and(getCompositeListener().afterStep(stepExecution));
}
catch (Exception e) {
    logger.error(String.format("Exception in afterStep callback in step %s in job %s", name, stepExecution.getJobExecution().getJobInstance().getJobName()), e);
}

它只是捕获异常并继续前进。不确定,为什么要这样处理]

© www.soinside.com 2019 - 2024. All rights reserved.