DbExecutionStrategy Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Poskytuje základní implementaci mechanismu opakování pro nespolehlivé operace a přechodné podmínky, které používají exponenciálně rostoucí zpoždění mezi opakováními.
public abstract class DbExecutionStrategy : System.Data.Entity.Infrastructure.IDbExecutionStrategy
type DbExecutionStrategy = class
interface IDbExecutionStrategy
Public MustInherit Class DbExecutionStrategy
Implements IDbExecutionStrategy
- Dědičnost
-
DbExecutionStrategy
- Odvozené
- Implementuje
Poznámky
Při každém spuštění operace se vytvoří nová instance. Následující vzorec se používá k výpočtu zpoždění po retryCount
počtu pokusů: min(random(1, 1.1) * (2 ^ retryCount - 1), maxDelay)
Začíná retryCount
na 0. Náhodný faktor rovnoměrně distribuuje opakované pokusy z více souběžných operací, které selhávají současně.
Konstruktory
DbExecutionStrategy() |
Vytvoří novou instanci položky DbExecutionStrategy. |
DbExecutionStrategy(Int32, TimeSpan) |
Vytvoří novou instanci s DbExecutionStrategy určenými limity počtu opakování a zpoždění mezi opakováními. |
Vlastnosti
RetriesOnFailure |
Vrátí |
Suspended |
Určuje, jestli je strategie pozastavená. Strategií je obvykle pozastavení při provádění, aby se zabránilo rekurzivnímu provádění z vnořených operací. |
Metody
Execute(Action) |
Opakovaně provádí zadanou operaci, zatímco splňuje aktuální zásady opakování. |
Execute<TResult>(Func<TResult>) |
Opakovaně provádí zadanou operaci, zatímco splňuje aktuální zásady opakování. |
ExecuteAsync(Func<Task>, CancellationToken) |
Opakovaně spustí zadanou asynchronní operaci, zatímco splňuje aktuální zásady opakování. |
ExecuteAsync<TResult>(Func<Task<TResult>>, CancellationToken) |
Opakovaně provádí zadanou asynchronní operaci, zatímco splňuje aktuální zásady opakování. |
GetNextDelay(Exception) |
Určuje, zda se má operace opakovat, a zpoždění před dalším pokusem. |
ShouldRetryOn(Exception) |
Určuje, zda zadaná výjimka představuje přechodné selhání, které lze nahradit opakováním. |
UnwrapAndHandleException<T>(Exception, Func<Exception,T>) |
Rekurzivně získá InnerException z |
Platí pro
Entity Framework