public class BackOffHandler : IHttpUnsuccessfulResponseHandler, IHttpExceptionHandlerA 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(Initializer)
public BackOffHandler(BackOffHandler.Initializer initializer)Constructs a new back-off handler with the given initializer.
| Parameter | |
|---|---|
| Name | Description |
initializer |
BackOffHandlerInitializer |
BackOffHandler(IBackOff)
public BackOffHandler(IBackOff backOff)Constructs a new back-off handler with the given back-off.
| Parameter | |
|---|---|
| Name | Description |
backOff |
IBackOffThe back-off policy. |
Properties
BackOff
public IBackOff BackOff { get; }Gets the back-off policy used by this back-off handler.
| Property Value | |
|---|---|
| Type | Description |
IBackOff |
|
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.
| Property Value | |
|---|---|
| Type | Description |
FuncExceptionbool |
|
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.
| Property Value | |
|---|---|
| Type | Description |
FuncHttpResponseMessagebool |
|
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.
| Property Value | |
|---|---|
| Type | Description |
TimeSpan |
|
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.
| Parameter | |
|---|---|
| Name | Description |
args |
HandleExceptionArgsHandle exception argument which properties such as the request, exception, current failed try. |
| Returns | |
|---|---|
| Type | Description |
Taskbool |
Whether this handler has made a change that requires the request to be resent. |
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.
| Parameter | |
|---|---|
| Name | Description |
args |
HandleUnsuccessfulResponseArgsHandle response argument which contains properties such as the request, response, current failed try. |
| Returns | |
|---|---|
| Type | Description |
Taskbool |
Whether this handler has made a change that requires the request to be resent. |
Wait(TimeSpan, CancellationToken)
protected virtual Task Wait(TimeSpan ts, CancellationToken cancellationToken)Waits the given time span. Overriding this method is recommended for mocking purposes.
| Parameters | |
|---|---|
| Name | Description |
ts |
TimeSpanTimeSpan to wait (and block the current thread). |
cancellationToken |
CancellationTokenThe cancellation token in case the user wants to cancel the operation in the middle. |
| Returns | |
|---|---|
| Type | Description |
Task |
|