Idioma

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) a retryCount inicialização em 0. O fator aleatório distribui uniformemente as tentativas de repetição de várias operações simultâneas falhando simultaneamente.

Construtores

Nome Descrição
DbExecutionStrategy()

Cria uma nova instância de DbExecutionStrategy.

DbExecutionStrategy(Int32, TimeSpan)

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

Propriedades

Nome Descrição
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 é suspender durante a execução para evitar a execução recursiva de operações aninhadas.

Métodos

Nome Descrição
Execute(Action)

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

Execute<TResult>(Func<TResult>)

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

ExecuteAsync(Func<Task>, CancellationToken)

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

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

Executa repetidamente a operação assíncrona especificada enquanto satisfaz a 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 EntityException, DbUpdateException ou UpdateException e passa para exceptionHandler

Aplica-se a