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: 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 |
| 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 |