All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.wichell.framework.rocketmq.example.transaction.TransactionExecuterImpl Maven / Gradle / Ivy

The newest version!
package com.wichell.framework.rocketmq.example.transaction;

import java.util.Date;
import java.util.Random;

import org.apache.rocketmq.client.producer.LocalTransactionExecuter;
import org.apache.rocketmq.client.producer.LocalTransactionState;
import org.apache.rocketmq.common.message.Message;

/**
 * 执行本地事务 如果事务消息发送到MQ上后,会回调该执行器
 */
public class TransactionExecuterImpl implements LocalTransactionExecuter {

	@Override
	public LocalTransactionState executeLocalTransactionBranch(final Message msg, final Object arg) {
		try {
			System.out.println(msg.toString());
			System.out.println("msg = " + new String(msg.getBody()));
			// System.out.println("arg = " + arg);
			System.out.println("这里执行入库操作....入库成功");
			if (new Random().nextInt(2) == 1) {
			}
			System.out.println(new Date() + "本地事务执行成功,发送确认消息");
			// return LocalTransactionState.COMMIT_MESSAGE;
		} catch (Exception e) {
			System.err.println(new Date() + "本地事务执行失败");
			return LocalTransactionState.UNKNOW;
		}
		// 下面两者情况的返回将不会被消费者读取到
		// LocalTransactionState.ROLLBACK_MESSAGE LocalTransactionState.UNKNOW
		return LocalTransactionState.COMMIT_MESSAGE;
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy