未验证 提交 3dabb6c5 编写于 作者: D duheng 提交者: GitHub

Merge pull request #510 from duhengforever/issue478

[ISSUE478]Polish async send message sample
...@@ -17,6 +17,8 @@ ...@@ -17,6 +17,8 @@
package org.apache.rocketmq.example.simple; package org.apache.rocketmq.example.simple;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import org.apache.rocketmq.client.exception.MQClientException; import org.apache.rocketmq.client.exception.MQClientException;
import org.apache.rocketmq.client.producer.DefaultMQProducer; import org.apache.rocketmq.client.producer.DefaultMQProducer;
import org.apache.rocketmq.client.producer.SendCallback; import org.apache.rocketmq.client.producer.SendCallback;
...@@ -32,7 +34,9 @@ public class AsyncProducer { ...@@ -32,7 +34,9 @@ public class AsyncProducer {
producer.start(); producer.start();
producer.setRetryTimesWhenSendAsyncFailed(0); producer.setRetryTimesWhenSendAsyncFailed(0);
for (int i = 0; i < 10000000; i++) { int messageCount = 100;
final CountDownLatch countDownLatch = new CountDownLatch(messageCount);
for (int i = 0; i < messageCount; i++) {
try { try {
final int index = i; final int index = i;
Message msg = new Message("Jodie_topic_1023", Message msg = new Message("Jodie_topic_1023",
...@@ -42,11 +46,13 @@ public class AsyncProducer { ...@@ -42,11 +46,13 @@ public class AsyncProducer {
producer.send(msg, new SendCallback() { producer.send(msg, new SendCallback() {
@Override @Override
public void onSuccess(SendResult sendResult) { public void onSuccess(SendResult sendResult) {
countDownLatch.countDown();
System.out.printf("%-10d OK %s %n", index, sendResult.getMsgId()); System.out.printf("%-10d OK %s %n", index, sendResult.getMsgId());
} }
@Override @Override
public void onException(Throwable e) { public void onException(Throwable e) {
countDownLatch.countDown();
System.out.printf("%-10d Exception %s %n", index, e); System.out.printf("%-10d Exception %s %n", index, e);
e.printStackTrace(); e.printStackTrace();
} }
...@@ -55,6 +61,7 @@ public class AsyncProducer { ...@@ -55,6 +61,7 @@ public class AsyncProducer {
e.printStackTrace(); e.printStackTrace();
} }
} }
countDownLatch.await(5, TimeUnit.SECONDS);
producer.shutdown(); producer.shutdown();
} }
} }
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册