Compartilhar via


DbExecutionStrategy Classe

Definição

Fornece a implementação base do mecanismo de repetição para operações não confiáveis e condições transitórias que usam atrasos exponencialmente crescentes entre repetições.

public abstract class DbExecutionStrategy : System.Data.Entity.Infrastructure.IDbExecutionStrategy
type DbExecutionStrategy = class
    interface IDbExecutionStrategy
Public MustInherit Class DbExecutionStrategy
Implements IDbExecutionStrategy
Herança
DbExecutionStrategy
Derivado
Implementações

Comentários

Uma nova instância será criada sempre que uma operação for executada. A fórmula a seguir é usada para calcular o atraso após retryCount o número de tentativas: min(random(1, 1.1) * (2 ^ retryCount - 1), maxDelay) o retryCount começa em 0. O fator aleatório distribui uniformemente as tentativas de repetição de várias operações simultâneas falhando simultaneamente.

Construtores

DbExecutionStrategy()

Cria uma nova instância de DbExecutionStrategy.

DbExecutionStrategy(Int32, TimeSpan)

Cria uma nova instância de DbExecutionStrategy com os limites especificados para o número de repetições e o atraso entre novas tentativas.

Propriedades

RetriesOnFailure

Retorna true para indicar que DbExecutionStrategy pode repetir a execução após uma falha.

Suspended

Indica se a estratégia está suspensa. A estratégia normalmente é suspensa durante a execução para evitar a execução recursiva de operações aninhadas.

Métodos

Execute(Action)

Executa repetidamente a operação especificada enquanto atende à política de repetição atual.

Execute<TResult>(Func<TResult>)

Executa repetidamente a operação especificada enquanto atende à política de repetição atual.

ExecuteAsync(Func<Task>, CancellationToken)

Executa repetidamente a operação assíncrona especificada enquanto atende à política de repetição atual.

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

Executa repetidamente a operação assíncrona especificada enquanto atende à política de repetição atual.

GetNextDelay(Exception)

Determina se a operação deve ser repetida e o atraso antes da próxima tentativa.

ShouldRetryOn(Exception)

Determina se a exceção especificada representa uma falha transitória que pode ser compensada por uma repetição.

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

Recursivamente obtém InnerException desde exception que seja um EntityExceptionou DbUpdateExceptionUpdateException e o passe para exceptionHandler

Aplica-se a