DbExecutionStrategy 類別
[此頁面專屬於 Entity Framework 第 6 版。最新版本可從 'Entity Framework' NuGet 套件取得。如需 Entity Framework 的詳細資訊,請參閱 msdn.com/data/ef。]
針對不可靠的作業和暫時性條件提供重試機制的基本實作,其會在重試之間使用指數遞增延遲。
繼承階層
System.Object
System.Data.Entity.Infrastructure.DbExecutionStrategy
System.Data.Entity.SqlServer.SqlAzureExecutionStrategy
命名空間: System.Data.Entity.Infrastructure
組件: EntityFramework (在 EntityFramework.dll 中)
語法
'宣告
Public MustInherit Class DbExecutionStrategy _
Implements IDbExecutionStrategy
'用途
Dim instance As DbExecutionStrategy
public abstract class DbExecutionStrategy : IDbExecutionStrategy
public ref class DbExecutionStrategy abstract : IDbExecutionStrategy
[<AbstractClassAttribute>]
type DbExecutionStrategy =
class
interface IDbExecutionStrategy
end
public abstract class DbExecutionStrategy implements IDbExecutionStrategy
DbExecutionStrategy 類型會公開下列成員。
建構函式
名稱 | 描述 | |
---|---|---|
DbExecutionStrategy() | 初始化 DbExecutionStrategy 類別的新執行個體。 | |
DbExecutionStrategy(Int32, TimeSpan) | 使用指定的重試次數限制以及重試之間的延遲,來初始化 DbExecutionStrategy 類別的新執行個體。 |
靠上
屬性
名稱 | 描述 | |
---|---|---|
RetriesOnFailure | 取得值,指出 DbExecutionStrategy 是否要在失敗之後重試執行。 |
靠上
方法
名稱 | 描述 | |
---|---|---|
Equals | (繼承自 Object)。 | |
Execute(Action) | 重複執行指定的作業,同時符合目前的重試原則。 | |
Execute<TResult>(Func<TResult>) | 重複執行指定的作業,同時符合目前的重試原則。 | |
ExecuteAsync(Func<Task>, CancellationToken) | 重複執行指定的非同步作業,同時符合目前的重試原則。 | |
ExecuteAsync<TResult>(Func<Task<TResult>>, CancellationToken) | 重複執行指定的非同步作業,同時符合目前的重試原則。 | |
Finalize | (繼承自 Object)。 | |
GetHashCode | (繼承自 Object)。 | |
GetNextDelay | 判斷是否應該重試作業,並在下一次嘗試前延遲。 | |
GetType | (繼承自 Object)。 | |
MemberwiseClone | (繼承自 Object)。 | |
ShouldRetryOn | 判斷指定的例外狀況是否代表可由重試補償的暫時性失敗。 | |
ToString | (繼承自 Object)。 | |
UnwrapAndHandleException<T> | 只要是 EntityException、DbUpdateException 或 UpdateException,就會以遞迴方式從 exception 取得 InnerException,並將其傳遞至 exceptionHandler。 |
靠上
備註
每次執行作業時,就會建立新的執行個體。 在嘗試 retryCount 次重試之後,會使用下面公式計算延遲:min(random(1, 1.1) * (2 ^ retryCount - 1), maxDelay)。retryCount 會從 0 開始。 隨機因素會從同時失敗的多個同時作業以統一的方式來散發重試次數。
執行緒安全
這個類型的任何 Public static (在 Visual Basic 中為 Shared) 成員都是安全執行緒。並非所有的執行個體成員都是安全執行緒。