package com.easemob.tsdb.kafka.plugin;
import com.easemob.tsdb.thrift.rpc.AbstractTSDBRpcPlugin;
import com.easemob.tsdb.thrift.rpc.TSDBWrapper;
import com.stumbleupon.async.Deferred;
import net.opentsdb.core.TSDB;
import net.opentsdb.stats.StatsCollector;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.concurrent.*;
/**
* @author stliu <stliu@apache.org>
* @date 3/11/15
*/
@SuppressWarnings("UnusedDeclaration")
public class KafkaConsumerRPCPlugin extends AbstractTSDBRpcPlugin {
private final static Logger logger = LoggerFactory.getLogger(KafkaConsumerRPCPlugin.class);
// private static volatile KafkaConsumerGroups kafkaConsumerGroups;
// private final ExecutorService executorService = Executors.newCachedThreadPool();
private static volatile KafkaConsumerGroupsMultiTopic kafkaConsumerGroupsMultiTopic;
@Override
public void initialize(TSDB tsdb) {
kafkaConsumerGroupsMultiTopic = new KafkaConsumerGroupsMultiTopic(new TSDBWrapper(tsdb));
kafkaConsumerGroupsMultiTopic.start();
// kafkaConsumerGroups = new KafkaConsumerGroups(new TSDBWrapper(tsdb));
// executorService.submit(kafkaConsumerGroups);
}
@Override
public Deferred<Object> shutdown() {
Deferred<Object> deferred = new Deferred<>();
try {
kafkaConsumerGroupsMultiTopic.close();
// kafkaConsumerGroups.close();
// executorService.shutdown();
} catch (Exception e) {
logger.error("Failed to stop kafka consumer group", e);
}
return deferred;
}
@Override
public void collectStats(StatsCollector statsCollector) {
}
}