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 ofServiceDiscovererEvents 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.ObjectA 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)APublisherreturned 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 aBiFunctionwhich is applied as-is usingPublisher.retryWhen(BiIntFunction)on thePublisherpassed 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)
APublisherreturned 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 aBiFunctionwhich is applied as-is usingPublisher.retryWhen(BiIntFunction)on thePublisherpassed toDefaultServiceDiscoveryRetryStrategy.apply(Publisher).- Parameters:
retryStrategy- ABiFunctionwhich is applied as-is usingPublisher.retryWhen(BiIntFunction)on thePublisherpassed 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-Executorto use for retry backoffs.initialDelay-Durationto use as initial delay for backoffs.jitter-Durationof 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-Executorto use for retry backoffs.initialDelay-Durationto use as initial delay for backoffs.jitter-Durationof 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 ofServiceDiscovererEvents published fromServiceDiscoverer.discover(Object).- Parameters:
executor-Executorto use for retry backoffs.initialDelay-Durationto use as initial delay for backoffs.jitter-Durationof jitter to apply to each backoff delay.flipAvailability-UnaryOperatorthat returns a newServiceDiscovererEventthat is the same as the passedServiceDiscovererEventbut withServiceDiscovererEvent.isAvailable()value flipped.- Returns:
- A new
DefaultServiceDiscoveryRetryStrategy.Builder.
-
-