public sealed class RetryAttempt
An attempt at a retriable operation. Use CreateRetrySequence(RetrySettings, IScheduler, DateTime?, IClock, TimeSpan?) or CreateRetrySequence(RetrySettings, IScheduler, TimeSpan?) to create a sequence of attempts that follow the specified settings.
Namespace
Google Google.Api Gax GrpcAssembly
Google.Api.Gax.Grpc.dll
Properties
AttemptNumber
public int AttemptNumber { get; }
The 1-based number of this attempt. If this is equal to MaxAttempts for the settings used to create this attempt, ShouldRetry(Exception) will always return false.
JitteredBackoff
public TimeSpan JitteredBackoff { get; }
The time that will be used to sleep or delay in Backoff(CancellationToken) and BackoffAsync(CancellationToken) . This has already had jitter applied to it.
Methods
Backoff(CancellationToken)
public void Backoff(CancellationToken cancellationToken)
Synchronously sleeps for a period of JitteredBackoff .
cancellationToken
BackoffAsync(CancellationToken)
public Task BackoffAsync(CancellationToken cancellationToken)
Asynchronously delays for a period of JitteredBackoff .
cancellationToken
CreateRetrySequence(RetrySettings, IScheduler, DateTime?, IClock, TimeSpan?)
public static IEnumerable<RetryAttempt> CreateRetrySequence(RetrySettings settings, IScheduler scheduler, DateTime? deadline, IClock clock, TimeSpan? initialBackoffOverride = null)
Returns a sequence of retry attempts. The sequence has MaxAttempts elements, and calling ShouldRetry(Exception) on the last attempt will always return false.
settings
scheduler
deadline
clock
initialBackoffOverride
TimeSpan
An override value to allow an initial backoff which is not the same as InitialBackoff . This is typically to allow an "immediate first retry".
CreateRetrySequence(RetrySettings, IScheduler, TimeSpan?)
public static IEnumerable<RetryAttempt> CreateRetrySequence(RetrySettings settings, IScheduler scheduler, TimeSpan? initialBackoffOverride = null)
Returns a sequence of retry attempts. The sequence has MaxAttempts elements, and calling ShouldRetry(Exception) on the last attempt will always return false. This overload assumes no deadline, and so does not require a clock.
settings
scheduler
initialBackoffOverride
TimeSpan
An override value to allow an initial backoff which is not the same as InitialBackoff . This is typically to allow an "immediate first retry".
ShouldRetry(Exception)
public bool ShouldRetry(Exception exception)
Indicates whether the operation should be retried when the given exception has been thrown. This will return false if the exception indicates that the operation shouldn't be retried, or the maximum number of attempts has been reached, or the next backoff would exceed the overall deadline. (It is assumed that Backoff(CancellationToken) or BackoffAsync(CancellationToken) will be called immediately afterwards.)