如何从StepExecutionListener After Step方法暂停Spring批处理作业?

本文介绍了如何从StepExecutionListener After Step方法暂停Spring批处理作业?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!,我已使用此方法成功地从前一步停止了作业。,代码是为了简洁性/清晰性进行了调整,但这就是要点。调用stepExecution.setTerminateOnly()stepExecution.setExitStatus()就足以让Spring Batch暂停作业,不执行任何后续步骤。状态已正确记录在BATCH_JOB_EXECUTION表中,但是,afterStep方法中的相同方法会被翻转,无法识别。状态被记录为已完成,并且所有后续步骤都会顺其自然地进行(最终以各自可怕的方式失败,因为After Step中的故障检测正在检测故障,因此它们不必这样做)。,这是我能想到的唯一问题:两个监听器使用复合监听器处于同一步骤。,是否可以执行其他操作以使此执行正确停止?,经过多次试验,我发现下面的流定义将允许从步骤侦听器正确停止作业,而无需在第一步之后执行步骤。,主要区别在于将start()更改为flow(),并将FlowBuilder.end()方法调用添加到构建器链的末尾。从.start方法返回的SimpleJobBuilder类没有公开类似的end()方法。,我不知道为什么这会在作业执行的内部造成如此大的差异,我很乐意向能够说明实际差异是什么以及为什么使用SimpleJobBuilder忽略步骤执行状态代码的人提供一些要点。但我发现了一些有用的东西,这就是目前最重要的。
返回顶部
跳到底部

Copyright 2011-2024 南京追名网络科技有限公司 苏ICP备2023031119号-6 乌徒帮 All Rights Reserved Powered by Z-BlogPHP Theme By open开发

请先 登录 再评论,若不是会员请先 注册