Package io.grpc.internal
Class RetryingNameResolver
java.lang.Object
io.grpc.NameResolver
io.grpc.internal.ForwardingNameResolver
io.grpc.internal.RetryingNameResolver
This wrapper class can add retry capability to any polling
NameResolver
implementation
that supports calling RetryingNameResolver.ResolutionResultListener
s with the outcome of each resolution.
The NameResolver
used with this
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) class
(package private) class
Simple callback class to store inNameResolver.ResolutionResult
attributes so that ManagedChannel can indicate if the resolved addresses were accepted.private class
Nested classes/interfaces inherited from class io.grpc.NameResolver
NameResolver.Args, NameResolver.ConfigOrError, NameResolver.Factory, NameResolver.Listener, NameResolver.Listener2, NameResolver.ResolutionResult, NameResolver.ResolutionResultAttr, NameResolver.ServiceConfigParser
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) static final Attributes.Key
<RetryingNameResolver.ResolutionResultListener> private final NameResolver
private final RetryScheduler
private final SynchronizationContext
-
Constructor Summary
ConstructorsConstructorDescriptionRetryingNameResolver
(NameResolver retriedNameResolver, RetryScheduler retryScheduler, SynchronizationContext syncContext) Creates a newRetryingNameResolver
. -
Method Summary
Modifier and TypeMethodDescription(package private) NameResolver
Used to get the underlyingNameResolver
that is getting its failed attempts retried.void
shutdown()
Stops the resolution.void
start
(NameResolver.Listener2 listener) Starts the resolution.Methods inherited from class io.grpc.internal.ForwardingNameResolver
getServiceAuthority, refresh, start, toString
-
Field Details
-
retriedNameResolver
-
retryScheduler
-
syncContext
-
RESOLUTION_RESULT_LISTENER_KEY
static final Attributes.Key<RetryingNameResolver.ResolutionResultListener> RESOLUTION_RESULT_LISTENER_KEY
-
-
Constructor Details
-
RetryingNameResolver
RetryingNameResolver(NameResolver retriedNameResolver, RetryScheduler retryScheduler, SynchronizationContext syncContext) Creates a newRetryingNameResolver
.- Parameters:
retriedNameResolver
- ANameResolver
that will have failed attempt retried.retryScheduler
- Used to schedule the retry attempts.
-
-
Method Details
-
start
Description copied from class:NameResolver
Starts the resolution. The method is not supposed to throw any exceptions. That might cause the Channel that the name resolver is serving to crash. Errors should be propagated throughNameResolver.Listener2.onError(io.grpc.Status)
.An instance may not be started more than once, by any overload of this method, even after an intervening call to
NameResolver.shutdown()
.- Overrides:
start
in classForwardingNameResolver
- Parameters:
listener
- used to receive updates on the target
-
shutdown
public void shutdown()Description copied from class:NameResolver
Stops the resolution. Updates to the Listener will stop.- Overrides:
shutdown
in classForwardingNameResolver
-
getRetriedNameResolver
NameResolver getRetriedNameResolver()Used to get the underlyingNameResolver
that is getting its failed attempts retried.
-