如何在spring批处理中停止/终止执行侦听器中的步骤?

时间:2015-11-30 18:09:47

标签: spring-batch terminate

我在步执行监听器中进行了文件名验证。如果文件名无效,我想终止/停止步骤进入阅读器。如何在枝条批次中实现这一目标?

3 个答案:

答案 0 :(得分:2)

侦听器是进行数据验证的错误位置。如果必须验证单个数据项,请使用处理器并抛出适当的异常。

如果要验证更多“常规”方面(如文件名或文件的存在或任何其他不属于单个项目的条件),请在处理步骤之前使用tasklet步骤。

答案 1 :(得分:1)

Hansjoerg的回答是一个有效的观点。至于如何实现你想要做的事情,这里有一个例子:

@Override
public ExitStatus afterStep(StepExecution stepExecution) {
    return ExitStatus.FAILED;
}

这将返回您可以在FAILED标记上使用的ExitStatus <next on="" />,以防止进入阅读器。

答案 2 :(得分:0)

解决问题的最佳选择是使用JobExecutionDecider执行文件名验证并停止工作或转到下一步