Class FutureRequestExecutionService

java.lang.Object
org.apache.http.impl.client.FutureRequestExecutionService
All Implemented Interfaces:
Closeable, AutoCloseable

@Contract(threading=SAFE) public class FutureRequestExecutionService extends Object implements Closeable
HttpAsyncClientWithFuture wraps calls to execute with a HttpRequestFutureTask and schedules them using the provided executor service. Scheduled calls may be cancelled.
  • Constructor Details

    • FutureRequestExecutionService

      public FutureRequestExecutionService(HttpClient httpclient, ExecutorService executorService)
      Create a new FutureRequestExecutionService.
      Parameters:
      httpclient - you should tune your httpclient instance to match your needs. You should align the max number of connections in the pool and the number of threads in the executor; it doesn't make sense to have more threads than connections and if you have less connections than threads, the threads will just end up blocking on getting a connection from the pool.
      executorService - any executorService will do here. E.g. Executors.newFixedThreadPool(int)
  • Method Details

    • execute

      public <T> HttpRequestFutureTask<T> execute(HttpUriRequest request, org.apache.http.protocol.HttpContext context, ResponseHandler<T> responseHandler)
      Schedule a request for execution.
      Type Parameters:
      T -
      Parameters:
      request - request to execute
      responseHandler - handler that will process the response.
      Returns:
      HttpAsyncClientFutureTask for the scheduled request.
    • execute

      public <T> HttpRequestFutureTask<T> execute(HttpUriRequest request, org.apache.http.protocol.HttpContext context, ResponseHandler<T> responseHandler, org.apache.http.concurrent.FutureCallback<T> callback)
      Schedule a request for execution.
      Type Parameters:
      T -
      Parameters:
      request - request to execute
      context - optional context; use null if not needed.
      responseHandler - handler that will process the response.
      callback - callback handler that will be called when the request is scheduled, started, completed, failed, or cancelled.
      Returns:
      HttpAsyncClientFutureTask for the scheduled request.
    • metrics

      Returns:
      metrics gathered for this instance.
      See Also:
    • close

      public void close() throws IOException
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Throws:
      IOException