【问题标题】:SpringBatch is blocking insertion of data in other tablesSpring Batch 阻止在其他表中插入数据
【发布时间】:2023-01-13 04:16:44
【问题描述】:

我正在使用 Postgres 作为我的 SQL。我的 Springboot 应用程序使用 Spring Batch 来处理和插入数据。我正在审核我的代码流,比如假设一个第 3 方 api,如果它失败我会调用我审核这个失败事件。这段代码在我的 Spring Batch Writer 中。我看到我的 AUDIT DTO 类的日志正在创建,但是我没有在审计表中看到数据。如果我将审计代码移到 Spring Batch writer 之外 - 它有效。应该做什么才能使我的审计Spring Batch writer 中的表插入代码有效吗?

【问题讨论】:

    标签: postgresql spring-boot spring-batch


    【解决方案1】:

    需要确定更多详细信息,但我假设您的作者写入第 3 方 API,并且您将审计日志写入用于 Spring Batch 元数据的相同 DataSource

    Spring Batch 在编写器中所做的每个块写入都包装在一个事务中。如果您在编写器中抛出异常,这样的事务将被回滚。

    您需要在 Spring Batch 创建的事务之外写入审计日志。例如,通过使用 Spring 事务管理并启动传播级别为REQUIRES_NEW 的新事务。

    【讨论】:

      猜你喜欢
      • 2019-10-22
      • 1970-01-01
      • 2016-03-17
      • 2021-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-05
      • 1970-01-01
      相关资源
      最近更新 更多