如何 stop/terminate 在 spring 批处理中执行侦听器的步骤?
how to stop/terminate the step in execution listeners in spring batch?
我在步骤执行侦听器中进行了文件名验证。如果文件名无效,我想 terminate/stop 从继续到 reader 的步骤。如何在小枝批次中实现这一目标?
侦听器是做数据验证的错误地方。如果必须验证单个数据项,请使用处理器并抛出适当的异常。
如果您想验证更多 "general" 方面,例如文件名或文件的存在或不属于单个项目的任何其他条件,请在处理步骤之前使用 tasklet 步骤。
Hansjoerg 的回答是有道理的。至于如何实现你想要做的事情,这里有一个例子:
@Override
public ExitStatus afterStep(StepExecution stepExecution) {
return ExitStatus.FAILED;
}
这将 return 一个 ExitStatus FAILED
,您可以在 <next on="" />
标签上使用它来防止进入 reader。
解决问题的最佳选择是使用 JobExecutionDecider 执行文件名验证并停止作业或转到下一步
我在步骤执行侦听器中进行了文件名验证。如果文件名无效,我想 terminate/stop 从继续到 reader 的步骤。如何在小枝批次中实现这一目标?
侦听器是做数据验证的错误地方。如果必须验证单个数据项,请使用处理器并抛出适当的异常。
如果您想验证更多 "general" 方面,例如文件名或文件的存在或不属于单个项目的任何其他条件,请在处理步骤之前使用 tasklet 步骤。
Hansjoerg 的回答是有道理的。至于如何实现你想要做的事情,这里有一个例子:
@Override
public ExitStatus afterStep(StepExecution stepExecution) {
return ExitStatus.FAILED;
}
这将 return 一个 ExitStatus FAILED
,您可以在 <next on="" />
标签上使用它来防止进入 reader。
解决问题的最佳选择是使用 JobExecutionDecider 执行文件名验证并停止作业或转到下一步