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