Future<Channel> channelFuture = channelPool.acquire(); channelFuture.addListener(future -> { if (future.isSuccess()) {
public HttpReceive request(HttpSend httpSend, long timeout, TimeUnit timeUnit) { final HttpReceive httpReceive = new HttpReceive(); Future<Channel> fch = channelPool.acquire(); Channel channel = null; try { channel = fch.get(timeout, timeUnit); ChannelPipeline p = channel.pipeline(); p.addLast(new HttpClientHandler(httpSend, httpReceive)); final FullHttpRequest fullHttpRequest = convertRequest(httpSend); p.writeAndFlush(fullHttpRequest); channel.closeFuture().await(timeout, timeUnit); if (!httpReceive.getIsDone()) { httpReceive.setHaveError(true); httpReceive.setErrMsg("请求已经超时"); } } catch (Exception e) { if (log.isWarnEnabled()) { log.warn(e.getMessage(), e); } httpReceive.setHaveError(true) .setErrMsg(e.getMessage()) .setThrowable(e) .setIsDone(true); } finally { if (channel != null) { channelPool.release(channel); } } return httpReceive; }
@Override public Future<Channel> acquire() { return delegate.acquire(); }
@Override public Future<Channel> acquire(Promise<Channel> promise) { return pool.acquire(promise); }
@Override public Future<Channel> acquire(Promise<Channel> promise) { return delegatePool.acquire(promise); }
@Override public Future<Channel> acquire(Promise<Channel> promise) { return pool.acquire(promise); }
@Override public Future<Channel> acquire() { return delegate.acquire(); }
@Override public Future<Channel> acquire(Promise<Channel> promise) { return delegate.acquire(promise); }
@Override public Future<Channel> acquire() { return delegatePool.acquire(); }
@Override public Future<Channel> acquire(Promise<Channel> promise) { return delegate.acquire(promise); }
public Future<Channel> acquire(Promise<Channel> promise) { return channelPool.acquire(promise); }
@Override public void onTimeout(AcquireTask task) { // Increment the acquire count and delegate to super to actually acquire a Channel which will // create a new connection. task.acquired(); delegateChannelPool.acquire(task.promise); } };
@Override public void onTimeout(AcquireTask task) { // Increment the acquire count and delegate to super to actually acquire a Channel which will // create a new connection. task.acquired(); delegateChannelPool.acquire(task.promise); } };
@Override public Future<Channel> acquire(Promise<Channel> promise) { return pool.acquire(promise).addListener(this); }
@Override public Future<Channel> acquire() { return delegate.acquire().addListener(onAcquire()); }
@Override public Future<Channel> acquire(Promise<Channel> promise) { return delegate.acquire(promise).addListener(onAcquire()); }
@Override public Future<Channel> acquire(Promise<Channel> promise) { return delegate.acquire(promise).addListener(onAcquire()); }
@Override public Future<Channel> acquire() { return delegate.acquire().addListener(onAcquire()); }
@SuppressWarnings("unchecked") public CompletableFuture<Void> execute() { Future<Channel> channelFuture = context.channelPool().acquire(); executeFuture = createExecuteFuture(channelFuture); channelFuture.addListener((GenericFutureListener) this::makeRequestListener); return executeFuture; }
@SuppressWarnings("unchecked") public CompletableFuture<Void> execute() { Future<Channel> channelFuture = context.channelPool().acquire(); executeFuture = createExecuteFuture(channelFuture); channelFuture.addListener((GenericFutureListener) this::makeRequestListener); return executeFuture; }