Class UninterruptableTimeoutClient
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionint
int
void
serviceTimeout
(long waitMs) Waits for at leastwaitms
, then returnsserviceTimeoutAsync
(Future<?> waitingFuture, CompletableFuture<Void> completion) Waits for waitingFuture to complete, then returns.serviceTimeoutAsyncBulkhead
(Future<?> waitingFuture) Waits for waitingFuture to complete, then returns.serviceTimeoutAsyncBulkheadQueueTimed
(Future<?> waitingFuture) Waits for waitingFuture to complete, then returns.serviceTimeoutAsyncCS
(long waitMs) Waits for at leastwaitMs
, then returnsserviceTimeoutAsyncFallback
(Future<?> waitingFuture) Waits for waitingFuture to complete, then returns.serviceTimeoutAsyncRetry
(Future<?> waitingFuture) Waits for waitingFuture to complete, then returns.
-
Constructor Details
-
UninterruptableTimeoutClient
public UninterruptableTimeoutClient()
-
-
Method Details
-
serviceTimeout
Waits for at leastwaitms
, then returnsTimes out in 500ms.
Does not respect thread interruption.
Uses a tight loop so the thread interrupted flag should be set when the method returns
- Parameters:
waitMs
- the time to wait
-
serviceTimeoutAsync
@Timeout(value=500L, unit=MILLIS) @Asynchronous public Future<Void> serviceTimeoutAsync(Future<?> waitingFuture, CompletableFuture<Void> completion) Waits for waitingFuture to complete, then returns.Times out in 500ms.
Runs asynchronously.
Does not respect thread interruption.
- Parameters:
waitingFuture
- future to wait forcompletion
- future that this method will complete before returning- Returns:
- a completed future
-
serviceTimeoutAsyncCS
@Timeout(value=500L, unit=MILLIS) @Asynchronous public CompletionStage<Void> serviceTimeoutAsyncCS(long waitMs) Waits for at leastwaitMs
, then returnsTimes 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
- Parameters:
waitMs
- the time to wait- Returns:
- a completed CompletionStage
-
serviceTimeoutAsyncBulkhead
@Timeout(value=500L, unit=MILLIS) @Asynchronous @Bulkhead(value=1, waitingTaskQueue=1) public Future<Void> serviceTimeoutAsyncBulkhead(Future<?> waitingFuture) Waits for waitingFuture to complete, then returns.Times out in 500ms.
Runs asynchronously.
Does not respect thread interruption.
Has a bulkhead with capacity of 1, queue size of 1.
Increments timeoutAsyncBulkheadCounter.
- Parameters:
waitingFuture
- future to wait for- Returns:
- a completed future
-
getTimeoutAsyncBulkheadCounter
public int getTimeoutAsyncBulkheadCounter() -
serviceTimeoutAsyncBulkheadQueueTimed
@Timeout(value=500L, unit=MILLIS) @Asynchronous @Bulkhead(value=1, waitingTaskQueue=1) public Future<Void> serviceTimeoutAsyncBulkheadQueueTimed(Future<?> waitingFuture) Waits for waitingFuture to complete, then returns.Times out in 500ms.
Runs asynchronously.
Does not respect thread interruption.
Has a bulkhead with capacity of 1, queue size of 1.
- Parameters:
waitingFuture
- future to wait for- Returns:
- a completed Future
-
serviceTimeoutAsyncRetry
@Timeout(value=500L, unit=MILLIS) @Asynchronous @Retry(maxRetries=2, delay=0L, jitter=0L) public Future<Void> serviceTimeoutAsyncRetry(Future<?> waitingFuture) Waits for waitingFuture to complete, then returns.Times out in 500ms.
Runs asynchronously.
Does not respect thread interruption.
Will do 2 retries with no delay.
Increments timeoutAsyncRetryCounter.
- Parameters:
waitingFuture
- future to wait for- Returns:
- a completed Future
-
getTimeoutAsyncRetryCounter
public int getTimeoutAsyncRetryCounter()- Returns:
- value of timeoutAsyncRetryCounter
-
serviceTimeoutAsyncFallback
@Timeout(value=500L, unit=MILLIS) @Asynchronous @Fallback(fallbackMethod="fallback") public Future<String> serviceTimeoutAsyncFallback(Future<?> waitingFuture) Waits for waitingFuture to complete, then returns.Times out in 500ms.
Runs asynchronously.
Does not respect thread interruption.
Will run the fallback method on exception
- Parameters:
waitingFuture
- future to wait for- Returns:
- Future completed with "OK", or completed with "FALLBACK" if the fallback ran
-
fallback
-