Spring batch 回滚后项目成功,但在处理器中报告为跳过
我有一个处理器,其中执行一段类似这样的代码:Spring batch 回滚后项目成功,但在处理器中报告为跳过,spring-batch,Spring Batch,我有一个处理器,其中执行一段类似这样的代码: if (!file.exists()) { logger.warn("Unknown file " + item.getId()); SkipReport report = new SkipReport(item.getId(), "Document Skipped"); List<SkipReport> reports = new ArrayList<Ski
if (!file.exists()) {
logger.warn("Unknown file " + item.getId());
SkipReport report = new SkipReport(item.getId(), "Document Skipped");
List<SkipReport> reports = new ArrayList<SkipReport>();
reports.add(report);
try {
//reporting error in csv file
reportWriter.write(reports);
} catch (Exception e) {
logger.error(e.getMessage());
}
throw new MyException();
}
这些类型的文件存储在nfs中,因此,据我所知,在非常罕见的情况下,无法读取这些文件,但通常在回滚后它们会成功。问题在于,项目第一次抛出此异常时,会报告一个错误reportedreportWriter.write,该错误无效
是否有正确报告此问题的方法?可能在回滚后在侦听器中编写报告。为什么不在Spring批处理中使用跳过功能?我们为您处理跳绳。我希望你能通过斯基普利斯滕报告。说得好!我在处理过程中处理报告,因为我也报告警告和其他事情。因此,我想象使用SkipListener,在OnSkipin过程中,我可以检查异常是否与MyException匹配,并在那里报告问题?明白了!如果您只想报告该类型的异常,您甚至不需要执行异常检查,因为您配置了跳过哪些异常。