@RequestScoped public class UninterruptableTimeoutClient extends Object
Constructor and Description |
---|
UninterruptableTimeoutClient() |
Modifier and Type | Method and Description |
---|---|
Future<String> |
fallback(Future<?> waitingFuture) |
int |
getTimeoutAsyncBulkheadCounter() |
int |
getTimeoutAsyncRetryCounter() |
void |
serviceTimeout(long waitMs)
Waits for at least
waitms , then returns |
Future<Void> |
serviceTimeoutAsync(Future<?> waitingFuture,
CompletableFuture<Void> completion)
Waits for waitingFuture to complete, then returns.
|
Future<Void> |
serviceTimeoutAsyncBulkhead(Future<?> waitingFuture)
Waits for waitingFuture to complete, then returns.
|
Future<Void> |
serviceTimeoutAsyncBulkheadQueueTimed(Future<?> waitingFuture)
Waits for waitingFuture to complete, then returns.
|
CompletionStage<Void> |
serviceTimeoutAsyncCS(long waitMs)
Waits for at least
waitMs , then returns |
Future<String> |
serviceTimeoutAsyncFallback(Future<?> waitingFuture)
Waits for waitingFuture to complete, then returns.
|
Future<Void> |
serviceTimeoutAsyncRetry(Future<?> waitingFuture)
Waits for waitingFuture to complete, then returns.
|
@Timeout(value=500L, unit=MILLIS) public void serviceTimeout(long waitMs)
waitms
, then returns
Times out in 500ms.
Does not respect thread interruption.
Uses a tight loop so the thread interrupted flag should be set when the method returns
waitMs
- the time to wait@Timeout(value=500L, unit=MILLIS) @Asynchronous public Future<Void> serviceTimeoutAsync(Future<?> waitingFuture, CompletableFuture<Void> completion)
Times out in 500ms.
Runs asynchronously.
Does not respect thread interruption.
waitingFuture
- future to wait forcompletion
- future that this method will complete before returning@Timeout(value=500L, unit=MILLIS) @Asynchronous public CompletionStage<Void> serviceTimeoutAsyncCS(long waitMs)
waitMs
, then returns
Times out in 500ms
Runs asynchronously
Does not respect thread interruption.
Uses a tight loop so the thread interrupted flag should be set when the method returns
waitMs
- the time to wait@Timeout(value=500L, unit=MILLIS) @Asynchronous @Bulkhead(value=1, waitingTaskQueue=1) public Future<Void> serviceTimeoutAsyncBulkhead(Future<?> waitingFuture)
Times out in 500ms.
Runs asynchronously.
Does not respect thread interruption.
Has a bulkhead with capacity of 1, queue size of 1.
Increments timeoutAsyncBulkheadCounter.
waitingFuture
- future to wait forpublic int getTimeoutAsyncBulkheadCounter()
@Timeout(value=500L, unit=MILLIS) @Asynchronous @Bulkhead(value=1, waitingTaskQueue=1) public Future<Void> serviceTimeoutAsyncBulkheadQueueTimed(Future<?> waitingFuture)
Times out in 500ms.
Runs asynchronously.
Does not respect thread interruption.
Has a bulkhead with capacity of 1, queue size of 1.
waitingFuture
- future to wait for@Timeout(value=500L, unit=MILLIS) @Asynchronous @Retry(maxRetries=2, delay=0L, jitter=0L) public Future<Void> serviceTimeoutAsyncRetry(Future<?> waitingFuture)
Times out in 500ms.
Runs asynchronously.
Does not respect thread interruption.
Will do 2 retries with no delay.
Increments timeoutAsyncRetryCounter.
waitingFuture
- future to wait forpublic int getTimeoutAsyncRetryCounter()
@Timeout(value=500L, unit=MILLIS) @Asynchronous @Fallback(fallbackMethod="fallback") public Future<String> serviceTimeoutAsyncFallback(Future<?> waitingFuture)
Times out in 500ms.
Runs asynchronously.
Does not respect thread interruption.
Will run the fallback method on exception
waitingFuture
- future to wait forCopyright © 2016 – 2022 Eclipse Foundation. All rights reserved.
Use is subject to license terms.