【发布时间】:2017-06-06 07:08:57
【问题描述】:
我正在使用块读取器、处理器和写入器模式来处理我们的数据。我采用的方法是,在使用 Reader 的读取方法之前,我运行一个连接到 db 并提取所有必需数据的 sql。这是在一个用@BeforeStep 注释的方法中完成的,输出数据成为 Reader 的 read 方法的源,该方法遍历生成的数据并为处理器检索每次读取的项目。在流程中抛出的任何异常都会被捕获并使用@Retryable 功能重试,并使用可跳过的异常功能跳过。
让我感到困惑的是,在使用 @BeforeStep 注释的方法中引发的任何异常都会被捕获,并且应用程序会引发自定义的可跳过异常,而系统不会跳过该异常。这是期望的行为还是我错过了什么。请帮帮我。
谢谢, 拉文德拉
【问题讨论】:
-
在@BeforeStep 中提取数据而不是直接使用基于 SQL 的 ItemReader 的具体原因是什么?
-
@LucaBassoRicci - 这是按照设计。我们要打开一个连接,运行一个大 sql 来获取数据并处理检索到的数据。
标签: spring-batch