Class FutureRequestExecutionService

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

@Contract(threading=SAFE_CONDITIONAL) public class FutureRequestExecutionService extends Object implements Closeable
This class schedules message execution execution and processing as FutureTasks with the provided ExecutorService.
  • Field Details

  • 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> FutureTask<T> execute(org.apache.hc.core5.http.ClassicHttpRequest request, org.apache.hc.core5.http.protocol.HttpContext context, org.apache.hc.core5.http.io.HttpClientResponseHandler<T> HttpClientResponseHandler)
      Schedule a request for execution.
      Type Parameters:
      T -
      Parameters:
      request - request to execute
      HttpClientResponseHandler - handler that will process the response.
      Returns:
      HttpAsyncClientFutureTask for the scheduled request.
    • execute

      public <T> FutureTask<T> execute(org.apache.hc.core5.http.ClassicHttpRequest request, org.apache.hc.core5.http.protocol.HttpContext context, org.apache.hc.core5.http.io.HttpClientResponseHandler<T> HttpClientResponseHandler, org.apache.hc.core5.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.
      HttpClientResponseHandler - 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