public class BackOffHandler : IHttpUnsuccessfulResponseHandler, IHttpExceptionHandler
A thread-safe back-off handler which handles an abnormal HTTP response or an exception with IBackOff .
Namespace
Google.Apis.HttpAssembly
Google.Apis.Core.dll
Constructors
BackOffHandler(BackOffHandler.Initializer)
public BackOffHandler(BackOffHandler.Initializer initializer)
Constructs a new back-off handler with the given initializer.
BackOffHandler(IBackOff)
public BackOffHandler(IBackOff backOff)
Constructs a new back-off handler with the given back-off.
Properties
BackOff
public IBackOff BackOff { get; }
Gets the back-off policy used by this back-off handler.
HandleExceptionFunc
public Func<Exception, bool> HandleExceptionFunc { get; }
Gets a delegate function which indicates whether this back-off handler should handle an exception. The default is DefaultHandleExceptionFunc .
HandleUnsuccessfulResponseFunc
public Func<HttpResponseMessage, bool> HandleUnsuccessfulResponseFunc { get; }
Gets a delegate function which indicates whether this back-off handler should handle an abnormal HTTP response. The default is DefaultHandleUnsuccessfulResponseFunc .
MaxTimeSpan
public TimeSpan MaxTimeSpan { get; }
Gets the maximum time span to wait. If the back-off instance returns a greater time span, the handle method
returns false
. Default value is 16 seconds per a retry request.
Methods
HandleExceptionAsync(HandleExceptionArgs)
public virtual Task<bool> HandleExceptionAsync(HandleExceptionArgs args)
Handles an exception thrown when sending a HTTP request.
A simple rule must be followed, if you modify the request object in a way that the exception can be
resolved, you must return true
.
args
HandleExceptionArgs
Handle exception argument which properties such as the request, exception, current failed try.
HandleResponseAsync(HandleUnsuccessfulResponseArgs)
public virtual Task<bool> HandleResponseAsync(HandleUnsuccessfulResponseArgs args)
Handles an abnormal response when sending a HTTP request.
A simple rule must be followed, if you modify the request object in a way that the abnormal response can
be resolved, you must return true
.
args
HandleUnsuccessfulResponseArgs
Handle response argument which contains properties such as the request, response, current failed try.
Wait(TimeSpan, CancellationToken)
protected virtual Task Wait(TimeSpan ts, CancellationToken cancellationToken)
Waits the given time span. Overriding this method is recommended for mocking purposes.
ts
cancellationToken
CancellationToken
The cancellation token in case the user wants to cancel the operation in the middle.