Condividi tramite


DbExecutionStrategy Classe

Definizione

Fornisce l'implementazione di base del meccanismo di ripetizione dei tentativi per operazioni non attendibili e condizioni temporanee che usano ritardi esponenzialmente crescenti tra i tentativi.

public abstract class DbExecutionStrategy : System.Data.Entity.Infrastructure.IDbExecutionStrategy
type DbExecutionStrategy = class
    interface IDbExecutionStrategy
Public MustInherit Class DbExecutionStrategy
Implements IDbExecutionStrategy
Ereditarietà
DbExecutionStrategy
Derivato
Implementazioni

Commenti

Una nuova istanza verrà creata ogni volta che viene eseguita un'operazione. La formula seguente viene usata per calcolare il ritardo dopo retryCount il numero di tentativi: min(random(1, 1.1) * (2 ^ retryCount - 1), maxDelay) l'avvio retryCount è pari a 0. Il fattore casuale distribuisce in modo uniforme i tentativi di ripetizione da più operazioni simultanee contemporaneamente.

Costruttori

DbExecutionStrategy()

Crea una nuova istanza di DbExecutionStrategy.

DbExecutionStrategy(Int32, TimeSpan)

Crea una nuova istanza di DbExecutionStrategy con i limiti specificati per il numero di tentativi e il ritardo tra i tentativi.

Proprietà

RetriesOnFailure

Restituisce true per indicare che potrebbe DbExecutionStrategy riprovare l'esecuzione dopo un errore.

Suspended

Indica se la strategia è sospesa. La strategia è in genere sospesa durante l'esecuzione per evitare l'esecuzione ricorsiva da operazioni annidate.

Metodi

Execute(Action)

Esegue in modo ripetitivo l'operazione specificata mentre soddisfa i criteri di ripetizione dei tentativi correnti.

Execute<TResult>(Func<TResult>)

Esegue in modo ripetitivo l'operazione specificata mentre soddisfa i criteri di ripetizione dei tentativi correnti.

ExecuteAsync(Func<Task>, CancellationToken)

Esegue in modo ripetitivo l'operazione asincrona specificata mentre soddisfa i criteri di ripetizione dei tentativi correnti.

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

Esegue ripetutamente l'operazione asincrona specificata mentre soddisfa i criteri di ripetizione dei tentativi correnti.

GetNextDelay(Exception)

Determina se l'operazione deve essere riprovata e il ritardo prima del tentativo successivo.

ShouldRetryOn(Exception)

Determina se l'eccezione specificata rappresenta un errore temporaneo che può essere compensato da un nuovo tentativo.

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

In modo ricorsivo ottiene InnerException da exception finché è un EntityExceptionoggetto o DbUpdateExceptionUpdateException e lo passa a exceptionHandler

Si applica a