RocketMQ事務消息

 

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