AOP解决数据库事务与MQ的问题
一.场景
项目中复杂的业务流程通常由简单的多个事务组成,每个简单的事务都可能涉及到MQ的发送。场景代码如下。
NotifyApi.java
@Transactional
public void paymentNotify(){
// 支付单操作
payOrderService.payOrderPaySuccess();
// 交易单操作
tradeOrderService.tradeOrderPaySuccess();
}
PayOrderService.java
@Transactional
public void payOrderPaySuccess(){
// db transaction
payOrderDas.paySuccess();
// mq send
mqService