Aracılığıyla paylaş


DbExecutionStrategy Sınıf

Tanım

Güvenilir olmayan işlemler ve yeniden denemeler arasındaki üstel olarak artan gecikmeleri kullanan geçici koşullar için yeniden deneme mekanizmasının temel uygulamasını sağlar.

public abstract class DbExecutionStrategy : System.Data.Entity.Infrastructure.IDbExecutionStrategy
type DbExecutionStrategy = class
    interface IDbExecutionStrategy
Public MustInherit Class DbExecutionStrategy
Implements IDbExecutionStrategy
Devralma
DbExecutionStrategy
Türetilmiş
Uygulamalar

Açıklamalar

Bir işlem her yürütildiğinde yeni bir örnek oluşturulur. Deneme sayısından sonraki retryCount gecikmeyi hesaplamak için aşağıdaki formül kullanılır: min(random(1, 1.1) * (2 ^ retryCount - 1), maxDelay)retryCount 0'da başlar. Rastgele faktör, aynı anda başarısız olan birden çok eşzamanlı işlemden yeniden deneme girişimlerini tek düzende dağıtır.

Oluşturucular

DbExecutionStrategy()

DbExecutionStrategy öğesinin yeni bir örneğini oluşturur.

DbExecutionStrategy(Int32, TimeSpan)

Yeniden deneme sayısı ve yeniden denemeler arasındaki gecikme için belirtilen sınırlarla yeni bir örneği DbExecutionStrategy oluşturur.

Özellikler

RetriesOnFailure

Bir hatadan sonra yürütmeyi yeniden deneyebileceğini belirtmek DbExecutionStrategy için döndürürtrue.

Suspended

Stratejinin askıya alınıp alınmadığını gösterir. strateji genellikle iç içe işlemlerden özyinelemeli yürütmeyi önlemek için yürütülürken askıya alınıyor.

Yöntemler

Execute(Action)

Geçerli yeniden deneme ilkesini karşılarken belirtilen işlemi tekrar tekrar yürütür.

Execute<TResult>(Func<TResult>)

Geçerli yeniden deneme ilkesini karşılarken belirtilen işlemi tekrar tekrar yürütür.

ExecuteAsync(Func<Task>, CancellationToken)

Geçerli yeniden deneme ilkesini karşılarken belirtilen zaman uyumsuz işlemi tekrar tekrar yürütür.

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

Geçerli yeniden deneme ilkesini karşılarken belirtilen zaman uyumsuz işlemi tekrar tekrar yürütür.

GetNextDelay(Exception)

İşlemin yeniden denenip denenmeyeceğini ve sonraki denemeden önceki gecikmeyi belirler.

ShouldRetryOn(Exception)

Belirtilen özel durumun yeniden deneme ile telafi edilebilecek geçici bir hatayı temsil edip etmediğini belirler.

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

Bir veya UpdateException olduğu sürece DbUpdateExceptionEntityExceptionInnerException'ı exception yinelemeli olarak alır ve öğesine geçirirexceptionHandler

Şunlara uygulanır