package com.taobao.metamorphosis.example;
import static com.taobao.metamorphosis.example.Help.initMetaConfig;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import com.taobao.metamorphosis.Message;
import com.taobao.metamorphosis.client.extension.AsyncMessageSessionFactory;
import com.taobao.metamorphosis.client.extension.AsyncMetaMessageSessionFactory;
import com.taobao.metamorphosis.client.producer.MessageProducer;
import com.taobao.metamorphosis.client.producer.SendMessageCallback;
import com.taobao.metamorphosis.client.producer.SendResult;
/**
* <pre>
* �첽������Ϣ������ *
*
*
* ���ڴ����첽��������Ϣ�ĻỰ����.
*
* ʹ�ó���:
* ���ڷ��Ϳɿ���Ҫ����ô��,��Ҫ����߷���Ч�ʺͽ��Ͷ�����Ӧ�õ�Ӱ�죬�������Ӧ�õ��ȶ���.
* ����,�ռ���־���û���Ϊ��Ϣ�ȳ���.
* ע��:
* ������Ϣ�صĽ���в�����ȷ��messageId,partition,offset,��Щֵ����-1
*
* @author ��
* @Date 2012-2-27
*
*/
public class AsyncOnewayProducer {
public static void main(final String[] args) throws Exception {
// New session factory,ǿ�ҽ���ʹ�õ���
final AsyncMessageSessionFactory sessionFactory = new AsyncMetaMessageSessionFactory(initMetaConfig());
// create producer,ǿ�ҽ���ʹ�õ���
final MessageProducer producer = sessionFactory.createAsyncProducer();
// publish topic
final String topic = "meta-test";
producer.publish(topic);
final BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String line = null;
while ((line = readLine(reader)) != null) {
// send message
try {
producer.sendMessage(new Message(topic, line.getBytes()), new SendMessageCallback() {
@Override
public void onMessageSent(final SendResult result) {
if (result.isSuccess()) {
System.out.println("Send message successfully,sent to " + result.getPartition());
}
else {
System.err.println("Send message failed,error message:" + result.getErrorMessage());
}
}
@Override
public void onException(final Throwable e) {
e.printStackTrace();
}
});
}
catch (final Exception e) {
e.printStackTrace();
}
// check result
}
}
private static String readLine(final BufferedReader reader) throws IOException {
System.out.println("Type a message to send:");
return reader.readLine();
}
}