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>) |
遞迴會從 |