Spring Batch - 即使块引发一些异常,是否有办法提交数据?

2024-01-19

我有一个从队列读取、处理并写入数据库的进程。即使过程失败,我也必须存储在数据库中。但 Spring Batch 步骤是事务性的,并且始终回滚更改。那么,即使块引发一些异常,有没有办法提交数据呢?

EDIT I:

我尝试使用 Tasklet 但得到相同的行为。

提前致谢。


在配置步骤期间,您可以使用noRollback()配置不会导致回滚的异常列表。任何作为已配置异常子类的异常都不会回滚。这意味着如果您只是不想回滚,请将其设置为Exception这是所有异常的父级。

可以从以下位置找到一个示例docs https://docs.spring.io/spring-batch/docs/current/reference/html/step.html#controllingRollback :

@Bean
public Step step1() {
    return this.stepBuilderFactory.get("step1")
                .<String, String>chunk(2)
                .reader(itemReader())
                .writer(itemWriter())
                .faultTolerant()
                .noRollback(Exception.class)
                .build();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring Batch - 即使块引发一些异常,是否有办法提交数据? 的相关文章

随机推荐