Partager via


DbExecutionStrategy Classe

Définition

Fournit l’implémentation de base du mécanisme de nouvelle tentative pour les opérations non fiables et les conditions temporaires qui utilisent des délais croissants de façon exponentielle entre les nouvelles tentatives.

public abstract class DbExecutionStrategy : System.Data.Entity.Infrastructure.IDbExecutionStrategy
type DbExecutionStrategy = class
    interface IDbExecutionStrategy
Public MustInherit Class DbExecutionStrategy
Implements IDbExecutionStrategy
Héritage
DbExecutionStrategy
Dérivé
Implémente

Remarques

Une nouvelle instance est créée chaque fois qu’une opération est exécutée. La formule suivante est utilisée pour calculer le délai après retryCount le nombre de tentatives : min(random(1, 1.1) * (2 ^ retryCount - 1), maxDelay) le retryCount commence à 0. Le facteur aléatoire répartit uniformément les tentatives de nouvelle tentative de plusieurs opérations simultanées qui échouent simultanément.

Constructeurs

DbExecutionStrategy()

Crée une instance de DbExecutionStrategy.

DbExecutionStrategy(Int32, TimeSpan)

Crée un instance de DbExecutionStrategy avec les limites spécifiées pour le nombre de nouvelles tentatives et le délai entre les nouvelles tentatives.

Propriétés

RetriesOnFailure

Retourne true pour indiquer que DbExecutionStrategy peut réessayer l’exécution après un échec.

Suspended

Indique si la stratégie est suspendue. La stratégie est généralement suspendue pendant l’exécution pour éviter l’exécution récursive à partir d’opérations imbriquées.

Méthodes

Execute(Action)

Exécute de manière répétitive l’opération spécifiée tant qu’elle satisfait à la stratégie de nouvelle tentative actuelle.

Execute<TResult>(Func<TResult>)

Exécute de manière répétitive l’opération spécifiée tant qu’elle satisfait à la stratégie de nouvelle tentative actuelle.

ExecuteAsync(Func<Task>, CancellationToken)

Exécute de manière répétitive l’opération asynchrone spécifiée tant qu’elle satisfait à la stratégie de nouvelle tentative actuelle.

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

Exécute à plusieurs reprises l’opération asynchrone spécifiée pendant qu’elle satisfait à la stratégie de nouvelle tentative actuelle.

GetNextDelay(Exception)

Détermine si l’opération doit être retentée et le délai avant la prochaine tentative.

ShouldRetryOn(Exception)

Détermine si l’exception spécifiée représente un échec temporaire qui peut être compensé par une nouvelle tentative.

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

Obtient InnerException de manière récursive à partir de exception tant qu’il s’agit d’un EntityException, DbUpdateException ou UpdateException et le passe à exceptionHandler

S’applique à