我有连接到 Postgres DB 的 Spring Boot 应用程序 3.2.5 应用程序,我正在使用 Spring Reactor 和 R2DBCRepository。
我有一个扩展 R2dbcRepository 的 Dao 类
interface ListDao extends R2dbcRepository<ListEntity, UUID> {
}
一个存储库,其中我有一个带有
@Transaction
注释的方法
@Repository
class GeneralListRepository {
@Autowired
private ListDao dao;
@Transactional(timeout = 1)
public Mono<GeneralList> createGeneralList(GeneralList list) {
return dao.save(new ListEntity(list))
.delayElement(Duration.ofSeconds(3));
}
}
这是从服务层调用的
@Service
class GeneralListRepository {
public Mono<GeneralList> createList(GeneralList list) {
return repository.createGeneralList(list);
}
}
我的代码比这个更复杂,但重点是我期望看到由于 .delayElement 而导致的超时,我没有看到......在我当前的代码中,有一组插入可以需要比 15 秒更长的时间...所以我有 10 秒的超时,但它不起作用...
我也使用 ToxyProxy 对此进行了测试以添加延迟,但仍然不会超时...
另一方面,使用R2DBC时是否有默认的事务超时?我已经测试过延迟响应大约5分钟...但仍然没有超时,我预计30秒...
您使用哪个版本?检查您在项目中使用的最后一个版本