Mercurial > hg > Members > shoshi > TreeCMSv2
view src/treecms/tree/cassandra/v1/util/ConcurrentCassandraClient.java @ 9:17ed97ca9960
commit
author | shoshi |
---|---|
date | Mon, 18 Apr 2011 01:07:27 +0900 |
parents | |
children | 4e0ed81bea89 |
line wrap: on
line source
package treecms.tree.cassandra.v1.util; import java.util.concurrent.Callable; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; import org.apache.cassandra.thrift.ColumnOrSuperColumn; import org.apache.cassandra.thrift.ColumnPath; import org.apache.cassandra.thrift.ConsistencyLevel; /** * * @author shoshi */ public class ConcurrentCassandraClient { private ExecutorService m_service; private ConcurrentCassandraClient(String _host,int _port,int _thCount) { m_service = Executors.newFixedThreadPool(_thCount,new CassandraClientThreadFactory(_host,_port)); } public static ConcurrentCassandraClient newInstance(String _host,int _port,int _thCount) { ConcurrentCassandraClient client = new ConcurrentCassandraClient(_host,_port,_thCount); return client; } public Future<ColumnOrSuperColumn> get(final String _ks,final String _key,final ColumnPath _path,final ConsistencyLevel _level) { Callable<ColumnOrSuperColumn> task = new Callable<ColumnOrSuperColumn>(){ @Override public ColumnOrSuperColumn call() throws Exception { CassandraClientWrapper client = ((CassandraClientThread)Thread.currentThread()).getClientWrapper(); ColumnOrSuperColumn cors = client.get(_ks,_key,_path,_level); return cors; } }; Future<ColumnOrSuperColumn> ret = m_service.submit(task); return ret; } }