pub trait ClassifyRetry:
Send
+ Sync
+ Debug {
// Required methods
fn classify_retry(&self, ctx: &InterceptorContext) -> RetryAction;
fn name(&self) -> &'static str;
// Provided method
fn priority(&self) -> RetryClassifierPriority { ... }
}
Expand description
Classifies what kind of retry is needed for a given InterceptorContext
.
Required Methods§
Sourcefn classify_retry(&self, ctx: &InterceptorContext) -> RetryAction
fn classify_retry(&self, ctx: &InterceptorContext) -> RetryAction
Run this classifier on the InterceptorContext
to determine if the previous request
should be retried. Returns a RetryAction
.
Provided Methods§
Sourcefn priority(&self) -> RetryClassifierPriority
fn priority(&self) -> RetryClassifierPriority
The priority of this retry classifier.
Classifiers with a higher priority will override the results of classifiers with a lower priority. Classifiers with equal priorities make no guarantees about which will override the other.
Retry classifiers are run in order of increasing priority. Any decision
(return value other than NoActionIndicated
) from a higher priority
classifier will override the decision of a lower priority classifier with one exception:
RetryAction::RetryForbidden
is treated differently: If ANY classifier returns RetryForbidden
,
this request will not be retried.