当前位置:   article > 正文

mysql事务内查询超时_Transactional超时时间控制与mysql事务超时时间

@transactional导致mysql事务超时

项目使用的是spring+mybatis+mysql,今天,我需要把处理一个业务就是,当用户出金失败时,事务能够回滚,同时减少用户的等待时间,因为我发现当处理失败时,用户需要等上1分钟以上的时间,这是不合理的。那么经过一系列的调查发现:spring的事务超时(使用Java注解方式)和mysql

InnoDB事务超时是相互关联的。

在一个需要进行事务回滚的方法上加入@Transactional的事务注解,timeout超时时间设置为2秒,也就是说发生事务回滚后,2秒钟后对用户响应。

@Transactional(timeout=2)

public int updateForzenMoney(MoneyTransfer moneyTransfer, int uid) {

// 如果是出金请求,则预扣除冻结资金

if (moneyTransfer.getType().intValue() == 1) {

moneyTransferService.updateTotalmoneyForPerTransfermoney(uid, moneyTransfer.getAmount());

// 将请求插入money_transfer表中

moneyTransferService.addMoneyTransfer(moneyTransfer);

return 1;

} else {

moneyTransferService.addMoneyTransfer(moneyTransfer);

return 2;

}

}

通过mysql控制台的模拟操作(强

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/729269
推荐阅读
相关标签
  

闽ICP备14008679号