package cn.lili.common.listener; import cn.lili.common.event.TransactionCommitSendMQEvent; import cn.lili.rocketmq.RocketmqSendCallbackBuilder; import lombok.extern.slf4j.Slf4j; import org.apache.rocketmq.spring.core.RocketMQTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.transaction.event.TransactionPhase; import org.springframework.transaction.event.TransactionalEventListener; /** * 事务提交监听器 * * @author paulG * @since 2022/1/19 **/ @Component @Slf4j public class TransactionCommitSendMQListener { /** * rocketMq */ @Autowired private RocketMQTemplate rocketMQTemplate; @TransactionalEventListener(phase = TransactionPhase.AFTER_COMMIT) public void send(TransactionCommitSendMQEvent event) { log.info("事务提交,发送mq信息!{}", event); String destination = event.getTopic() + ":" + event.getTag(); //发送订单变更mq消息 rocketMQTemplate.asyncSend(destination, event.getMessage(), RocketmqSendCallbackBuilder.commonCallback()); } }