DbExecutionStrategy Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Zapewnia podstawową implementację mechanizmu ponawiania prób dla zawodnych operacji i przejściowych warunków, które wykorzystują wykładniczo rosnące opóźnienia między ponawiania próbami.
public abstract class DbExecutionStrategy : System.Data.Entity.Infrastructure.IDbExecutionStrategy
type DbExecutionStrategy = class
interface IDbExecutionStrategy
Public MustInherit Class DbExecutionStrategy
Implements IDbExecutionStrategy
- Dziedziczenie
-
DbExecutionStrategy
- Pochodne
- Implementuje
Uwagi
Nowe wystąpienie zostanie utworzone przy każdym wykonaniu operacji. Poniższa formuła służy do obliczania opóźnienia po retryCount
liczbie prób: min(random(1, 1.1) * (2 ^ retryCount - 1), maxDelay)
rozpoczyna retryCount
się od 0. Współczynnik losowy równomiernie dystrybuuje próby ponawiania z wielu jednoczesnych operacji zakończonych niepowodzeniem jednocześnie.
Konstruktory
DbExecutionStrategy() |
Tworzy nowe wystąpienie klasy DbExecutionStrategy. |
DbExecutionStrategy(Int32, TimeSpan) |
Tworzy nowe wystąpienie programu DbExecutionStrategy z określonymi limitami liczby ponownych prób i opóźnienia między ponownymi próbami. |
Właściwości
RetriesOnFailure |
Zwraca wartość |
Suspended |
Wskazuje, czy strategia jest zawieszona. Strategia jest zwykle zawieszana podczas wykonywania, aby uniknąć cyklicznego wykonywania z zagnieżdżonych operacji. |
Metody
Execute(Action) |
Powtarzalnie wykonuje określoną operację, gdy spełnia ona bieżące zasady ponawiania. |
Execute<TResult>(Func<TResult>) |
Powtarzalnie wykonuje określoną operację, gdy spełnia ona bieżące zasady ponawiania. |
ExecuteAsync(Func<Task>, CancellationToken) |
Powtarzalnie wykonuje określoną operację asynchroniczną, gdy spełnia ona bieżące zasady ponawiania. |
ExecuteAsync<TResult>(Func<Task<TResult>>, CancellationToken) |
Wielokrotnie wykonuje określoną operację asynchroniczną, gdy spełnia ona bieżące zasady ponawiania. |
GetNextDelay(Exception) |
Określa, czy operacja powinna zostać ponowiona, a opóźnienie przed następną próbą. |
ShouldRetryOn(Exception) |
Określa, czy określony wyjątek reprezentuje błąd przejściowy, który może zostać zrekompensowany przez ponowienie próby. |
UnwrapAndHandleException<T>(Exception, Func<Exception,T>) |
Rekursywnie pobiera wyjątek InnerException z |