共用方式為


DbExecutionStrategy 類別

定義

針對不可靠的作業和暫時性狀況,提供重試機制的基底實作,這些條件會使用重試之間以指數方式增加的延遲。

public abstract class DbExecutionStrategy : System.Data.Entity.Infrastructure.IDbExecutionStrategy
type DbExecutionStrategy = class
    interface IDbExecutionStrategy
Public MustInherit Class DbExecutionStrategy
Implements IDbExecutionStrategy
繼承
DbExecutionStrategy
衍生
實作

備註

每次執行作業時,都會建立新的實例。 下列公式用來計算嘗試次數後的 retryCount 延遲: min(random(1, 1.1) * (2 ^ retryCount - 1), maxDelay)retryCount 0 開始。 隨機因數會統一散發來自多個同時作業的重試嘗試同時失敗。

建構函式

DbExecutionStrategy()

建立 DbExecutionStrategy 的新執行個體。

DbExecutionStrategy(Int32, TimeSpan)

使用指定的重試次數限制和重試之間的延遲,建立 的新實例 DbExecutionStrategy

屬性

RetriesOnFailure

true傳回 ,指出 DbExecutionStrategy 可能會在失敗後重試執行。

Suspended

指出策略是否已暫停。 策略通常會在執行時暫停,以避免從巢狀作業遞迴執行。

方法

Execute(Action)

在滿足目前的重試原則時,重複執行指定的作業。

Execute<TResult>(Func<TResult>)

在滿足目前的重試原則時,重複執行指定的作業。

ExecuteAsync(Func<Task>, CancellationToken)

在滿足目前的重試原則時,重複執行指定的非同步作業。

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

在滿足目前的重試原則時,重複執行指定的非同步作業。

GetNextDelay(Exception)

判斷是否應該重試作業,以及下一次嘗試前的延遲。

ShouldRetryOn(Exception)

判斷指定的例外狀況是否代表可由重試補償的暫時性失敗。

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

遞迴會從 exception 取得 InnerException,只要它是 EntityExceptionDbUpdateExceptionUpdateException 就會將其傳遞至 exceptionHandler

適用於