use of com.ctrip.xpipe.pool.FixedObjectPool in project x-pipe by ctripcorp.
the class AbstractFakeRedisTest method sendInmemoryPsync.
protected InMemoryPsync sendInmemoryPsync(String ip, int port, String runid, long offset) throws Exception {
SequenceCommandChain chain = new SequenceCommandChain(false);
SimpleObjectPool<NettyClient> pool = getXpipeNettyClientKeyedObjectPool().getKeyPool(new InetSocketAddress(ip, port));
NettyClient nettyClient = null;
try {
nettyClient = pool.borrowObject();
SimpleObjectPool<NettyClient> clientPool = new FixedObjectPool<NettyClient>(nettyClient);
chain.add(new Replconf(clientPool, ReplConfType.CAPA, scheduled, CAPA.EOF.toString()));
InMemoryPsync psync = new InMemoryPsync(clientPool, runid, offset, scheduled);
chain.add(psync);
psync.addPsyncObserver(new PsyncObserver() {
private long masterRdbOffset = 0;
@Override
public void reFullSync() {
}
@Override
public void onFullSync() {
}
@Override
public void onContinue(String requestReplId, String responseReplId) {
}
@Override
public void endWriteRdb() {
new Replconf(clientPool, ReplConfType.ACK, scheduled, String.valueOf(masterRdbOffset)).execute();
}
@Override
public void beginWriteRdb(EofType eofType, long masterRdbOffset) throws IOException {
this.masterRdbOffset = masterRdbOffset;
}
});
chain.execute();
return psync;
} finally {
if (nettyClient != null) {
pool.returnObject(nettyClient);
}
}
}
use of com.ctrip.xpipe.pool.FixedObjectPool in project x-pipe by ctripcorp.
the class TransactionalCommand method doExecute.
@Override
protected void doExecute() throws CommandExecutionException {
try {
final NettyClient nettyClient = parentClientPool.borrowObject();
SimpleObjectPool<NettyClient> clientPool = new FixedObjectPool<NettyClient>(nettyClient);
startTransaction(clientPool);
future().addListener(new CommandFutureListener<Object[]>() {
@Override
public void operationComplete(CommandFuture<Object[]> commandFuture) throws Exception {
if (nettyClient != null) {
try {
parentClientPool.returnObject(nettyClient);
} catch (ReturnObjectException e) {
logger.error("[doExecute]" + this, e);
}
}
}
});
} catch (BorrowObjectException e) {
throw new CommandExecutionException("execute " + this, e);
}
}
use of com.ctrip.xpipe.pool.FixedObjectPool in project x-pipe by ctripcorp.
the class AbstractCommandTest method createClientPool.
protected FixedObjectPool<NettyClient> createClientPool(String host, int port) throws Exception {
NettyClientFactory nettyClientFactory = new NettyClientFactory(new InetSocketAddress(host, port));
nettyClientFactory.start();
stoppables.add(nettyClientFactory);
NettyClient nettyClient = nettyClientFactory.makeObject().getObject();
FixedObjectPool<NettyClient> clientPool = new FixedObjectPool<NettyClient>(nettyClient);
return clientPool;
}
Aggregations