事务
解释 getTxJob 的 MongoDB ClientSession 事务、Reactor 上下文会话传播、重试责任和 Spring 事务边界。
getTxJob
getTxJob(...) 通过 MongoExecutionContext.startSession() 打开 ClientSession 并开始事务,然后将会话绑定到 Reactor 上下文。正常完成时提交,错误/取消时中止活动事务,最后按顺序关闭会话。
会话范围
事务会话仅在 MongoExecutionContext#getSessionScope() 相同的 DSL 执行中传播。默认的 DriverMongoExecutionContext 使用自己的 MongoClient 作为会话范围。
事务重试由调用方负责。
getTxJob(...) 不会自动重试 TransientTransactionError 等 MongoDB 事务错误。重试的与否及次数由调用应用程序根据操作的幂等性、外部副作用和业务规则决定。
Spring 事务与 DSL 的边界。
Spring @Transactional / TransactionalOperator。
由 Spring Data MongoDB 管理的事务/会话边界。
ReactiveMongoDsl#getTxJob。
DSL 直接启动 ClientSession 并传递到 Reactor 上下文。