Java Code Examples for com.alibaba.rocketmq.client.producer.TransactionMQProducer#setTransactionCheckListener()
The following examples show how to use
com.alibaba.rocketmq.client.producer.TransactionMQProducer#setTransactionCheckListener() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: TransactionProducer.java From reading-and-annotate-rocketmq-3.4.6 with GNU General Public License v3.0 | 5 votes |
public static void main(String[] args) throws MQClientException, InterruptedException { //事务决断处理类 TransactionCheckListener transactionCheckListener = new TransactionCheckListenerImpl(); TransactionMQProducer producer = new TransactionMQProducer("please_rename_unique_group_name"); producer.setCheckThreadPoolMinSize(2); producer.setCheckThreadPoolMaxSize(2); producer.setCheckRequestHoldMax(2000); producer.setTransactionCheckListener(transactionCheckListener); producer.start(); String[] tags = new String[] { "TagA", "TagB", "TagC", "TagD", "TagE" }; TransactionExecuterImpl tranExecuter = new TransactionExecuterImpl(); for (int i = 0; i < 100; i++) { try { Message msg = new Message("TopicTest", tags[i % tags.length], "KEY" + i, ("Hello RocketMQ " + i).getBytes()); SendResult sendResult = producer.sendMessageInTransaction(msg, tranExecuter, null); System.out.println(sendResult); Thread.sleep(10); } catch (MQClientException e) { e.printStackTrace(); } } for (int i = 0; i < 100000; i++) { Thread.sleep(1000); } producer.shutdown(); }
Example 2
Source File: MqProducer.java From RocketMqCurrencyBoot with Apache License 2.0 | 5 votes |
@PostConstruct private void init() throws MQClientException { if (transaction == null || transactionExecuter == null) { DefaultMQProducer defaultProducer = new DefaultMQProducer(); // Producer 组名, 多个 Producer 如果属于一 个应用,发送同样的消息,则应该将它们 归为同一组 defaultProducer.setProducerGroup(ProducerGroupName); // Name Server 地址列表 defaultProducer.setNamesrvAddr(NamesrvAddr); // 生产者名称 defaultProducer.setInstanceName(InstanceName); // 超时时间 defaultProducer.setSendMsgTimeout(SendMsgTimeout); defaultProducer.start(); producer = defaultProducer; } else { TransactionMQProducer transactionProducer = new TransactionMQProducer(); // Producer 组名, 多个 Producer 如果属于一 个应用,发送同样的消息,则应该将它们 归为同一组 transactionProducer.setProducerGroup(ProducerGroupName); // Name Server 地址列表 transactionProducer.setNamesrvAddr(NamesrvAddr); // 生产者名称 transactionProducer.setInstanceName(InstanceName); // 超时时间 transactionProducer.setSendMsgTimeout(SendMsgTimeout); transactionProducer.setCheckThreadPoolMinSize(checkThreadPoolMinSize); transactionProducer.setCheckThreadPoolMaxSize(checkThreadPoolMaxSize); transactionProducer.setCheckRequestHoldMax(checkRequestHoldMax); transactionProducer.setTransactionCheckListener(transaction); transactionProducer.start(); producer = transactionProducer; } }
Example 3
Source File: TransactionProducer.java From RocketMQ-Master-analyze with Apache License 2.0 | 5 votes |
public static void main(String[] args) throws MQClientException, InterruptedException { TransactionCheckListener transactionCheckListener = new TransactionCheckListenerImpl(); TransactionMQProducer producer = new TransactionMQProducer("please_rename_unique_group_name"); // 事务回查最小并发数 producer.setCheckThreadPoolMinSize(2); // 事务回查最大并发数 producer.setCheckThreadPoolMaxSize(2); // 队列数 producer.setCheckRequestHoldMax(2000); producer.setTransactionCheckListener(transactionCheckListener); producer.start(); String[] tags = new String[] { "TagA", "TagB", "TagC", "TagD", "TagE" }; TransactionExecuterImpl tranExecuter = new TransactionExecuterImpl(); for (int i = 0; i < 100; i++) { try { Message msg = new Message("TopicTest", tags[i % tags.length], "KEY" + i, ("Hello RocketMQ " + i).getBytes()); SendResult sendResult = producer.sendMessageInTransaction(msg, tranExecuter, null); System.out.println(sendResult); Thread.sleep(10); } catch (MQClientException e) { e.printStackTrace(); } } for (int i = 0; i < 100000; i++) { Thread.sleep(1000); } producer.shutdown(); }