package com.alibaba.rocketmq.storm;
import java.io.Serializable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.alibaba.rocketmq.client.consumer.DefaultMQPushConsumer;
import com.alibaba.rocketmq.client.consumer.listener.MessageListener;
import com.alibaba.rocketmq.storm.domain.RocketMQConfig;
/**
* @author Von Gosling
*/
public class MessagePushConsumer implements Serializable {
private static final long serialVersionUID = 4641537253577312163L;
private static final Logger LOG = LoggerFactory
.getLogger(MessagePushConsumer.class);
private final RocketMQConfig config;
private transient DefaultMQPushConsumer consumer;
public MessagePushConsumer(RocketMQConfig config) {
this.config = config;
}
public void start(MessageListener listener) throws Exception {
consumer = (DefaultMQPushConsumer) MessageConsumerManager.getConsumerInstance(config,
listener, true);
this.consumer.start();
LOG.info("Init consumer successfully,configuration->{} !", config);
}
public void shutdown() {
consumer.shutdown();
LOG.info("Successfully shutdown consumer {} !", config);
}
public void suspend() {
consumer.suspend();
LOG.info("Pause consumer !");
}
public void resume() {
consumer.resume();
LOG.info("Resume consumer !");
}
public DefaultMQPushConsumer getConsumer() {
return consumer;
}
}