Message<String> msg = MessageBuilder .<String>withPayload(user.getName()) .setHeader(RocketMQHeaders.TRANSACTION_ID,UUID.randomUUID().toString()) .build(); TransactionSendResult sendResult = rocketMQTemplate.sendMessageInTransaction(destination,msg, user); LocalTransactionState localTransactionState = sendResult.getLocalTransactionState(); logger.info("发送状态:localTransactionState==>{}",localTransactionState);
@RocketMQTransactionListener public class UserTransactionListener implements RocketMQLocalTransactionListener { static final Logger logger = LoggerFactory.getLogger(UserTransactionListener.class); @Autowired private MongoTemplate mongoTemplate; /*** * 发送prepare消息成功此方法被回调,该方法用于执行本地事务 * @param msg 回传的消息,利用transactionId便可获取到该消息的惟一Id * @param arg 调用send方法时传递的参数,当send时候如有额外的参数能够传递到send方法中,这里能获取到 - * @return