DbExecutionStrategy 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
針對不可靠的作業和暫時性狀況,提供重試機制的基底實作,這些條件會使用重試之間以指數方式增加的延遲。
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 |
|
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>) |
遞迴會從 |