繁体   English   中英

Spring 批处理 - 块 model 的条件步骤流程

[英]Spring batch - conditional step flow for Chunk model

我有两个步骤,如果第 1 步处理器在过滤后没有返回任何项目,则应该跳过第 2 步。 我看到ItemListenerSupport可以扩展,并且可以使用后处理。

@Override
public void afterProcess(NumberInfo item, Integer result) {
    super.afterProcess(item, result);
    if (item.isPositive()) {
        stepExecution.setExitStatus(new ExitStatus(NOTIFY));
    }
}

我的处理是基于块的,我想在处理完所有块之后设置退出状态,如果有任何项目未过滤。 我目前正在将未过滤的项目添加到ExecutionContext并在下一步中使用。

如果过滤掉所有块的所有项目,我将如何阻止下一步

对于程序化决策,您可以使用JobExecutionDecider 此 API 使您可以访问上一步的StepExecution ,因此您可以根据上一步执行的任何信息及其执行上下文来决定运行下一步。 在您的情况下,它可以是过滤器计数或任何对您预先存储在执行上下文中的决定有意义的东西。

您可以在参考文档的Programmatic Flow Decisions部分找到有关此 API 和一些代码示例的更多详细信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM