DbExecutionStrategy Klasse

Definition

Stellt die Basisimplementierung des Wiederholungsmechanismus für unzuverlässige Vorgänge und vorübergehende Bedingungen bereit, die exponentiell zunehmende Verzögerungen zwischen Wiederholungen verwenden.

public abstract class DbExecutionStrategy : System.Data.Entity.Infrastructure.IDbExecutionStrategy
type DbExecutionStrategy = class
    interface IDbExecutionStrategy
Public MustInherit Class DbExecutionStrategy
Implements IDbExecutionStrategy
Vererbung
DbExecutionStrategy
Abgeleitet
Implementiert

Hinweise

Bei jeder Ausführung eines Vorgangs wird ein neuer instance erstellt. Die folgende Formel wird verwendet, um die Verzögerung nach retryCount der Anzahl der Versuche zu berechnen: min(random(1, 1.1) * (2 ^ retryCount - 1), maxDelay) Der retryCount beginnt bei 0. Der Zufallsfaktor verteilt gleichmäßig die Wiederholungsversuche aus mehreren gleichzeitig fehlgeschlagenen Vorgängen.

Konstruktoren

DbExecutionStrategy()

Erstellt eine neue Instanz von DbExecutionStrategy.

DbExecutionStrategy(Int32, TimeSpan)

Erstellt eine neue instance von DbExecutionStrategy mit den angegebenen Grenzwerten für die Anzahl von Wiederholungen und die Verzögerung zwischen Wiederholungen.

Eigenschaften

RetriesOnFailure

Gibt zurück true , um anzugeben, dass DbExecutionStrategy die Ausführung nach einem Fehler erneut ausgeführt werden kann.

Suspended

Gibt an, ob die Strategie angehalten wird. Die Strategie wird in der Regel während der Ausführung angehalten, um die rekursive Ausführung von geschachtelten Vorgängen zu vermeiden.

Methoden

Execute(Action)

Wiederholt wird der angegebene Vorgang ausgeführt, während er die aktuelle Wiederholungsrichtlinie erfüllt.

Execute<TResult>(Func<TResult>)

Wiederholt wird der angegebene Vorgang ausgeführt, während er die aktuelle Wiederholungsrichtlinie erfüllt.

ExecuteAsync(Func<Task>, CancellationToken)

Wiederholt wird der angegebene asynchrone Vorgang ausgeführt, während er die aktuelle Wiederholungsrichtlinie erfüllt.

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

Führt den angegebenen asynchronen Vorgang wiederholt aus, während er die aktuelle Wiederholungsrichtlinie erfüllt.

GetNextDelay(Exception)

Bestimmt, ob der Vorgang wiederholt werden soll, und die Verzögerung vor dem nächsten Versuch.

ShouldRetryOn(Exception)

Bestimmt, ob die angegebene Ausnahme einen vorübergehenden Fehler darstellt, der durch einen Wiederholungsversuch kompensiert werden kann.

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

Rekursiv ruft InnerException von abexception, solange es ein EntityExceptionoder UpdateException ist, DbUpdateException und übergibt es anexceptionHandler

Gilt für: