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 をEntityExceptionDbUpdateException再帰的に取得しUpdateException、 に渡しますexceptionHandler

適用対象