DbExecutionStrategy Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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 |
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 |
Aplica-se a
Entity Framework