Spring Webflux 与事务

n00*_*00b 6 transactions spring-webflux

是否可以使用 Spring Webflux 进行事务管理?我们将构建一个微服务,我正在考虑使用 Spring Webflux,但我想确保改变状态的 PUT/POST 请求可以是原子的。例如,如果收到的请求需要:

  • 在微服务自己的数据库中更新状态
  • 通过 REST API 更新下游服务

是否可以将步骤包装在事务中以便更改是原子的?

Yau*_*kin 5

TransactionTemplate您可以在反应式代码中使用:

private TransactionTemplate transactionTemplate;

// save to DB method
public Void saveMembers(Member m1, Member m2) {
    saveMember(m1);
    saveMember(m2);
}

// your reactive method 
public Mono<Void> saveMembersAsync(Member m1, Member m) {
    return Mono.fromCallable(() -> transactionTemplate.execute(transactionStatus -> 
        saveMembers(m1, m2)));
}
Run Code Online (Sandbox Code Playgroud)