Compartir a través de


DbExecutionStrategy Clase

Definición

Proporciona la implementación base del mecanismo de reintento para operaciones no confiables y condiciones transitorias que usan retrasos exponencialmente crecientes entre reintentos.

public abstract class DbExecutionStrategy : System.Data.Entity.Infrastructure.IDbExecutionStrategy
type DbExecutionStrategy = class
    interface IDbExecutionStrategy
Public MustInherit Class DbExecutionStrategy
Implements IDbExecutionStrategy
Herencia
DbExecutionStrategy
Derivado
Implementaciones

Comentarios

Se creará una nueva instancia cada vez que se ejecute una operación. La fórmula siguiente se usa para calcular el retraso después retryCount del número de intentos: retryCountmin(random(1, 1.1) * (2 ^ retryCount - 1), maxDelay) comienza en 0. El factor aleatorio distribuye uniformemente los intentos de reintento de varias operaciones simultáneas con errores simultáneamente.

Constructores

DbExecutionStrategy()

Crea una nueva instancia de DbExecutionStrategy.

DbExecutionStrategy(Int32, TimeSpan)

Crea una nueva instancia de DbExecutionStrategy con los límites especificados para el número de reintentos y el retraso entre reintentos.

Propiedades

RetriesOnFailure

Devuelve true para indicar que DbExecutionStrategy podría reintentar la ejecución después de un error.

Suspended

Indica si la estrategia está suspendida. Normalmente, la estrategia se suspende mientras se ejecuta para evitar la ejecución recursiva de las operaciones anidadas.

Métodos

Execute(Action)

Ejecuta repetidamente la operación especificada mientras satisface la directiva de reintento actual.

Execute<TResult>(Func<TResult>)

Ejecuta repetidamente la operación especificada mientras satisface la directiva de reintento actual.

ExecuteAsync(Func<Task>, CancellationToken)

Ejecuta repetidamente la operación asincrónica especificada mientras satisface la directiva de reintento actual.

ExecuteAsync<TResult>(Func<Task<TResult>>, CancellationToken)

Ejecuta repetidamente la operación asincrónica especificada mientras satisface la directiva de reintento actual.

GetNextDelay(Exception)

Determina si se debe reintentar la operación y el retraso antes del siguiente intento.

ShouldRetryOn(Exception)

Determina si la excepción especificada representa un error transitorio que un reintento puede compensar.

UnwrapAndHandleException<T>(Exception, Func<Exception,T>)

Obtiene de forma recursiva InnerException siempre exception que sea o EntityExceptionDbUpdateExceptionUpdateException y lo pase aexceptionHandler

Se aplica a