gpt4 book ai didi

Spring Batch - 当 ItemReader 没有返回数据时如何使作业失败

转载 作者:行者123 更新时间:2023-12-02 01:20:27 24 4
gpt4 key购买 nike

我有一个 Spring Batch 应用程序,它使用 JdbcCursorItemReader 从数据库表中读取数据,并使用 FlatFileItemWriter 将其写入平面文件。

当我测试我的应用程序时,我发现即使没有通过 JdbcCursorItemReader 从数据库返回数据,FlatFileItemWriter 也会创建一个文件。但是,当数据库中没有适当的数据时,我打算让我的工作失败。是否可以这样做或至少阻止 FlatFileItemWriter 创建文件?

问候

最佳答案

来自http://static.springsource.org/spring-batch/reference/html/patterns.html

11.7。未找到输入时处理步骤完成

在许多批处理场景中,在数据库或文件中找不到要处理的行并不异常(exception)。该步骤被简单地视为未找到任何工作并以 0 个已读取项目完成。 Spring Batch 中开箱即用的所有 ItemReader 实现都默认采用此方法。如果即使存在输入也没有写出任何内容,这可能会导致一些困惑。 (如果文件命名错误等,通常会发生这种情况)因此,应该检查元数据本身,以确定框架需要处理多少工作。但是,如果没有发现任何输入被视为异常怎么办?在这种情况下,以编程方式检查元数据是否未处理任何项目并导致失败是最好的解决方案。因为这是一个常见的用例,所以监听器仅提供以下功能:

public class NoWorkFoundStepExecutionListener extends StepExecutionListenerSupport {

public ExitStatus afterStep(StepExecution stepExecution) {
if (stepExecution.getReadCount() == 0) {
return ExitStatus.FAILED;
}
return null;
}

}

关于Spring Batch - 当 ItemReader 没有返回数据时如何使作业失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5577658/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com