DbExecutionStrategy Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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: retryCount
min(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 |
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 |