@Contract(threading=SAFE_CONDITIONAL) public class FutureRequestExecutionService extends Object implements Closeable
FutureTask
s with the provided ExecutorService
.Constructor and Description |
---|
FutureRequestExecutionService(HttpClient httpClient,
ExecutorService executorService)
Create a new FutureRequestExecutionService.
|
Modifier and Type | Method and Description |
---|---|
void |
close() |
<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.
|
<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.
|
FutureRequestExecutionMetrics |
metrics() |
public FutureRequestExecutionService(HttpClient httpClient, ExecutorService executorService)
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)
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)
T
- request
- request to executeHttpClientResponseHandler
- handler that will process the response.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)
T
- request
- request to executecontext
- 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.public FutureRequestExecutionMetrics metrics()
FutureRequestExecutionMetrics
public void close() throws IOException
close
in interface Closeable
close
in interface AutoCloseable
IOException
Copyright © 1999–2021 The Apache Software Foundation. All rights reserved.