coolmq icon indicating copy to clipboard operation
coolmq copied to clipboard

TransactionSender切面的执行顺序问题

Open ijaychang opened this issue 6 years ago • 3 comments

TransactionSender这个切面是在Transactional注解指定的切面之前执行的吗? 如果是之前执行的那没问题,如果是之后执行的,那么有问题,当本地业务方法执行成功了,也提交事务了,但rabbitmq的消息没发送到mq server。

ijaychang avatar Oct 10 '18 02:10 ijaychang

around,意思就是前后都有

vvsuperman avatar Oct 10 '18 07:10 vvsuperman

@vvsuperman 前后都有我知道,这样说吧,比如Transactional注解的切面的我叫做A, TransMessage注解的切面我叫做B。 如果是 B开始 -》 A开始-》业务对象业务方法-》A结束-》B结束,是有问题的,消息发送失败,本地事务却已经提交了 如果是 A开始 -》 B开始-》业务对象业务方法-》B结束-》A结束,那是可以的,这样的话万一发送消息失败,也没关系,本地事务是会回滚的

ijaychang avatar Oct 11 '18 00:10 ijaychang

只有一个切面,没有Transactional。可以看下这个:https://segmentfault.com/l/1500000016673126 送点奶粉钱:)

vvsuperman avatar Oct 21 '18 09:10 vvsuperman