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.MessageSessionFactory;
import com.taobao.metamorphosis.client.MetaMessageSessionFactory;
import com.taobao.metamorphosis.client.producer.MessageProducer;
import com.taobao.metamorphosis.client.producer.SendMessageCallback;
import com.taobao.metamorphosis.client.producer.SendResult;
/**
* �첽��Ϣ������
*
* @author ��
* @Date 2012-2-27
*
*/
public class AsyncProducer {
public static void main(final String[] args) throws Exception {
// New session factory,ǿ�ҽ���ʹ�õ���
final MessageSessionFactory sessionFactory = new MetaMessageSessionFactory(initMetaConfig());
// create producer,ǿ�ҽ���ʹ�õ���
final MessageProducer producer = sessionFactory.createProducer();
// publish topic
final String topic = "slave-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();
}
}
}
private static String readLine(final BufferedReader reader) throws IOException {
System.out.println("Type a message to send:");
return reader.readLine();
}
}