我想具体针对春季批量作业的跳过政策。因此,只需几次故障即可终止作业。无论如何,当工作完成时,我想知道实际发生了多少次失败。
stepBuilderFactory.get("step")....skipLimit(10).skip(CustomException.class);
JobExecution result = jobLauncher.run(job, params);
result.getAllFailureExceptions().size(); //always = 0
问题:失败大小总是= 0
,因为当错误应该被跳过时,它们不计算在内。但如果我删除了skipLimit
,那么该作业将立即终止。
那么如何在作业运行后获得错误计数?
答案 0 :(得分:2)
您可以尝试以下操作。
int failures = 0;
Collection<StepExecution> stepExecutions = result.getStepExecutions();
for(StepExecution se : stepExecutions)
failures += se.getSkipCount();
结果你应该有失败次数