Package io.servicetalk.http.api
Class DefaultServiceDiscoveryRetryStrategy.Builder<ResolvedAddress,E extends ServiceDiscovererEvent<ResolvedAddress>>
- java.lang.Object
-
- io.servicetalk.http.api.DefaultServiceDiscoveryRetryStrategy.Builder<ResolvedAddress,E>
-
- Type Parameters:
ResolvedAddress
- The type of address after resolution.E
- Type ofServiceDiscovererEvent
s published fromServiceDiscoverer.discover(Object)
.
- Enclosing class:
- DefaultServiceDiscoveryRetryStrategy<ResolvedAddress,E extends ServiceDiscovererEvent<ResolvedAddress>>
public static final class DefaultServiceDiscoveryRetryStrategy.Builder<ResolvedAddress,E extends ServiceDiscovererEvent<ResolvedAddress>> extends java.lang.Object
A builder to build instances ofDefaultServiceDiscoveryRetryStrategy
.
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description ServiceDiscoveryRetryStrategy<ResolvedAddress,E>
build()
Creates a newServiceDiscoveryRetryStrategy
.DefaultServiceDiscoveryRetryStrategy.Builder<ResolvedAddress,E>
retainAddressesTillSuccess(boolean retainAddressesTillSuccess)
APublisher
returned fromServiceDiscoverer.discover(Object)
may fail transiently leaving the consumer of these events with an option of either disposing the addresses that were provided before the error or retain them till a retry succeeds.DefaultServiceDiscoveryRetryStrategy.Builder<ResolvedAddress,E>
retryStrategy(BiIntFunction<java.lang.Throwable,? extends Completable> retryStrategy)
Specifies aBiFunction
which is applied as-is usingPublisher.retryWhen(BiIntFunction)
on thePublisher
passed toDefaultServiceDiscoveryRetryStrategy.apply(Publisher)
.static <ResolvedAddress>
DefaultServiceDiscoveryRetryStrategy.Builder<ResolvedAddress,ServiceDiscovererEvent<ResolvedAddress>>withDefaults(Executor executor, java.time.Duration initialDelay, java.time.Duration jitter)
Creates a new builder that uses default retries.static <ResolvedAddress,E extends ServiceDiscovererEvent<ResolvedAddress>>
DefaultServiceDiscoveryRetryStrategy.Builder<ResolvedAddress,E>withDefaults(Executor executor, java.time.Duration initialDelay, java.time.Duration jitter, java.util.function.UnaryOperator<E> flipAvailability)
Creates a new builder that uses default retries.static <ResolvedAddress>
DefaultServiceDiscoveryRetryStrategy.Builder<ResolvedAddress,PartitionedServiceDiscovererEvent<ResolvedAddress>>withDefaultsForPartitions(Executor executor, java.time.Duration initialDelay, java.time.Duration jitter)
Creates a new builder that uses default retries.
-
-
-
Method Detail
-
retainAddressesTillSuccess
public DefaultServiceDiscoveryRetryStrategy.Builder<ResolvedAddress,E> retainAddressesTillSuccess(boolean retainAddressesTillSuccess)
APublisher
returned fromServiceDiscoverer.discover(Object)
may fail transiently leaving the consumer of these events with an option of either disposing the addresses that were provided before the error or retain them till a retry succeeds. This option enables/disables retention of addresses after an error is observed till a subsequent success is observed.- Parameters:
retainAddressesTillSuccess
- Enables retention of addresses whentrue
.- Returns:
this
.
-
retryStrategy
public DefaultServiceDiscoveryRetryStrategy.Builder<ResolvedAddress,E> retryStrategy(BiIntFunction<java.lang.Throwable,? extends Completable> retryStrategy)
Specifies aBiFunction
which is applied as-is usingPublisher.retryWhen(BiIntFunction)
on thePublisher
passed toDefaultServiceDiscoveryRetryStrategy.apply(Publisher)
.- Parameters:
retryStrategy
- ABiFunction
which is applied as-is usingPublisher.retryWhen(BiIntFunction)
on thePublisher
passed toDefaultServiceDiscoveryRetryStrategy.apply(Publisher)
.- Returns:
this
.
-
build
public ServiceDiscoveryRetryStrategy<ResolvedAddress,E> build()
Creates a newServiceDiscoveryRetryStrategy
.- Returns:
- A new
ServiceDiscoveryRetryStrategy
.
-
withDefaults
public static <ResolvedAddress> DefaultServiceDiscoveryRetryStrategy.Builder<ResolvedAddress,ServiceDiscovererEvent<ResolvedAddress>> withDefaults(Executor executor, java.time.Duration initialDelay, java.time.Duration jitter)
Creates a new builder that uses default retries.- Type Parameters:
ResolvedAddress
- The type of address after resolution.- Parameters:
executor
-Executor
to use for retry backoffs.initialDelay
-Duration
to use as initial delay for backoffs.jitter
-Duration
of jitter to apply to each backoff delay.- Returns:
- A new
DefaultServiceDiscoveryRetryStrategy.Builder
.
-
withDefaultsForPartitions
public static <ResolvedAddress> DefaultServiceDiscoveryRetryStrategy.Builder<ResolvedAddress,PartitionedServiceDiscovererEvent<ResolvedAddress>> withDefaultsForPartitions(Executor executor, java.time.Duration initialDelay, java.time.Duration jitter)
Creates a new builder that uses default retries.- Type Parameters:
ResolvedAddress
- The type of address after resolution.- Parameters:
executor
-Executor
to use for retry backoffs.initialDelay
-Duration
to use as initial delay for backoffs.jitter
-Duration
of jitter to apply to each backoff delay.- Returns:
- A new
DefaultServiceDiscoveryRetryStrategy.Builder
.
-
withDefaults
public static <ResolvedAddress,E extends ServiceDiscovererEvent<ResolvedAddress>> DefaultServiceDiscoveryRetryStrategy.Builder<ResolvedAddress,E> withDefaults(Executor executor, java.time.Duration initialDelay, java.time.Duration jitter, java.util.function.UnaryOperator<E> flipAvailability)
Creates a new builder that uses default retries.- Type Parameters:
ResolvedAddress
- The type of address after resolution.E
- Type ofServiceDiscovererEvent
s published fromServiceDiscoverer.discover(Object)
.- Parameters:
executor
-Executor
to use for retry backoffs.initialDelay
-Duration
to use as initial delay for backoffs.jitter
-Duration
of jitter to apply to each backoff delay.flipAvailability
-UnaryOperator
that returns a newServiceDiscovererEvent
that is the same as the passedServiceDiscovererEvent
but withServiceDiscovererEvent.isAvailable()
value flipped.- Returns:
- A new
DefaultServiceDiscoveryRetryStrategy.Builder
.
-
-